Todo: 集成多平台 解决因SaiNiu线程抢占资源问题 本地提交测试环境打包 和 正式打包脚本与正式环境打包bat 提交Python32环境包 改进多日志文件生成情况修改打包日志细节
This commit is contained in:
1393
Utils/PythonNew32/Doc/html/whatsnew/2.0.html
Normal file
1393
Utils/PythonNew32/Doc/html/whatsnew/2.0.html
Normal file
File diff suppressed because it is too large
Load Diff
1069
Utils/PythonNew32/Doc/html/whatsnew/2.1.html
Normal file
1069
Utils/PythonNew32/Doc/html/whatsnew/2.1.html
Normal file
File diff suppressed because it is too large
Load Diff
1462
Utils/PythonNew32/Doc/html/whatsnew/2.2.html
Normal file
1462
Utils/PythonNew32/Doc/html/whatsnew/2.2.html
Normal file
File diff suppressed because it is too large
Load Diff
2211
Utils/PythonNew32/Doc/html/whatsnew/2.3.html
Normal file
2211
Utils/PythonNew32/Doc/html/whatsnew/2.3.html
Normal file
File diff suppressed because it is too large
Load Diff
1743
Utils/PythonNew32/Doc/html/whatsnew/2.4.html
Normal file
1743
Utils/PythonNew32/Doc/html/whatsnew/2.4.html
Normal file
File diff suppressed because it is too large
Load Diff
2363
Utils/PythonNew32/Doc/html/whatsnew/2.5.html
Normal file
2363
Utils/PythonNew32/Doc/html/whatsnew/2.5.html
Normal file
File diff suppressed because it is too large
Load Diff
3384
Utils/PythonNew32/Doc/html/whatsnew/2.6.html
Normal file
3384
Utils/PythonNew32/Doc/html/whatsnew/2.6.html
Normal file
File diff suppressed because it is too large
Load Diff
2816
Utils/PythonNew32/Doc/html/whatsnew/2.7.html
Normal file
2816
Utils/PythonNew32/Doc/html/whatsnew/2.7.html
Normal file
File diff suppressed because it is too large
Load Diff
1141
Utils/PythonNew32/Doc/html/whatsnew/3.0.html
Normal file
1141
Utils/PythonNew32/Doc/html/whatsnew/3.0.html
Normal file
File diff suppressed because it is too large
Load Diff
854
Utils/PythonNew32/Doc/html/whatsnew/3.1.html
Normal file
854
Utils/PythonNew32/Doc/html/whatsnew/3.1.html
Normal file
@@ -0,0 +1,854 @@
|
||||
<!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="What’s New In Python 3.1" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="https://docs.python.org/3/whatsnew/3.1.html" />
|
||||
<meta property="og:site_name" content="Python documentation" />
|
||||
<meta property="og:description" content="Author, Raymond Hettinger,. This article explains the new features in Python 3.1, compared to 3.0. Python 3.1 was released on June 27, 2009. PEP 372: Ordered Dictionaries: Regular Python dictionari..." />
|
||||
<meta property="og:image" content="_static/og-image.png" />
|
||||
<meta property="og:image:alt" content="Python documentation" />
|
||||
<meta name="description" content="Author, Raymond Hettinger,. This article explains the new features in Python 3.1, compared to 3.0. Python 3.1 was released on June 27, 2009. PEP 372: Ordered Dictionaries: Regular Python dictionari..." />
|
||||
<meta name="theme-color" content="#3776ab">
|
||||
<meta property="og:image:width" content="200">
|
||||
<meta property="og:image:height" content="200">
|
||||
|
||||
<title>What’s New In Python 3.1 — Python 3.13.5 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=5ff89526" />
|
||||
<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=32a6def9"></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.13.5 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="What’s New In Python 3.0" href="3.0.html" />
|
||||
<link rel="prev" title="What’s New In Python 3.2" href="3.2.html" />
|
||||
|
||||
|
||||
<link rel="canonical" href="https://docs.python.org/3/whatsnew/3.1.html">
|
||||
|
||||
|
||||
|
||||
|
||||
<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="#">What’s New In Python 3.1</a><ul>
|
||||
<li><a class="reference internal" href="#pep-372-ordered-dictionaries">PEP 372: Ordered Dictionaries</a></li>
|
||||
<li><a class="reference internal" href="#pep-378-format-specifier-for-thousands-separator">PEP 378: Format Specifier for Thousands Separator</a></li>
|
||||
<li><a class="reference internal" href="#other-language-changes">Other Language Changes</a></li>
|
||||
<li><a class="reference internal" href="#new-improved-and-deprecated-modules">New, Improved, and Deprecated Modules</a></li>
|
||||
<li><a class="reference internal" href="#optimizations">Optimizations</a></li>
|
||||
<li><a class="reference internal" href="#idle">IDLE</a></li>
|
||||
<li><a class="reference internal" href="#build-and-c-api-changes">Build and C API Changes</a></li>
|
||||
<li><a class="reference internal" href="#porting-to-python-3-1">Porting to Python 3.1</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="3.2.html"
|
||||
title="previous chapter">What’s New In Python 3.2</a></p>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="3.0.html"
|
||||
title="next chapter">What’s New In Python 3.0</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/3.1.rst"
|
||||
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="3.0.html" title="What’s New In Python 3.0"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="3.2.html" title="What’s New In Python 3.2"
|
||||
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.13.5 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="">What’s New In Python 3.1</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="what-s-new-in-python-3-1">
|
||||
<h1>What’s New In Python 3.1<a class="headerlink" href="#what-s-new-in-python-3-1" title="Link to this heading">¶</a></h1>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Author<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p>Raymond Hettinger</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>This article explains the new features in Python 3.1, compared to 3.0.
|
||||
Python 3.1 was released on June 27, 2009.</p>
|
||||
<section id="pep-372-ordered-dictionaries">
|
||||
<h2>PEP 372: Ordered Dictionaries<a class="headerlink" href="#pep-372-ordered-dictionaries" title="Link to this heading">¶</a></h2>
|
||||
<p>Regular Python dictionaries iterate over key/value pairs in arbitrary order.
|
||||
Over the years, a number of authors have written alternative implementations
|
||||
that remember the order that the keys were originally inserted. Based on
|
||||
the experiences from those implementations, a new
|
||||
<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> class has been introduced.</p>
|
||||
<p>The OrderedDict API is substantially the same as regular dictionaries
|
||||
but will iterate over keys and values in a guaranteed order depending on
|
||||
when a key was first inserted. If a new entry overwrites an existing entry,
|
||||
the original insertion position is left unchanged. Deleting an entry and
|
||||
reinserting it will move it to the end.</p>
|
||||
<p>The standard library now supports use of ordered dictionaries in several
|
||||
modules. 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 uses them by default. This lets
|
||||
configuration files be read, modified, and then written back in their original
|
||||
order. The <em>_asdict()</em> method for <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
|
||||
returns an ordered dictionary with the values appearing in the same order as
|
||||
the underlying tuple indices. The <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 is being built-out with
|
||||
an <em>object_pairs_hook</em> to allow OrderedDicts to be built by the decoder.
|
||||
Support was also added for third-party tools like <a class="reference external" href="https://pyyaml.org/">PyYAML</a>.</p>
|
||||
<div class="admonition seealso">
|
||||
<p class="admonition-title">See also</p>
|
||||
<dl class="simple">
|
||||
<dt><span class="target" id="index-0"></span><a class="pep reference external" href="https://peps.python.org/pep-0372/"><strong>PEP 372</strong></a> - Ordered Dictionaries</dt><dd><p>PEP written by Armin Ronacher and Raymond Hettinger. Implementation
|
||||
written by Raymond Hettinger.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<p>Since an ordered dictionary remembers its insertion order, it can be used
|
||||
in conjunction with sorting to make a sorted dictionary:</p>
|
||||
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="c1"># regular unsorted dictionary</span>
|
||||
<span class="gp">>>> </span><span class="n">d</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'banana'</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="s1">'apple'</span><span class="p">:</span><span class="mi">4</span><span class="p">,</span> <span class="s1">'pear'</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'orange'</span><span class="p">:</span> <span class="mi">2</span><span class="p">}</span>
|
||||
|
||||
<span class="gp">>>> </span><span class="c1"># dictionary sorted by key</span>
|
||||
<span class="gp">>>> </span><span class="n">OrderedDict</span><span class="p">(</span><span class="nb">sorted</span><span class="p">(</span><span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="p">(),</span> <span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">t</span><span class="p">:</span> <span class="n">t</span><span class="p">[</span><span class="mi">0</span><span class="p">]))</span>
|
||||
<span class="go">OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)])</span>
|
||||
|
||||
<span class="gp">>>> </span><span class="c1"># dictionary sorted by value</span>
|
||||
<span class="gp">>>> </span><span class="n">OrderedDict</span><span class="p">(</span><span class="nb">sorted</span><span class="p">(</span><span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="p">(),</span> <span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">t</span><span class="p">:</span> <span class="n">t</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span>
|
||||
<span class="go">OrderedDict([('pear', 1), ('orange', 2), ('banana', 3), ('apple', 4)])</span>
|
||||
|
||||
<span class="gp">>>> </span><span class="c1"># dictionary sorted by length of the key string</span>
|
||||
<span class="gp">>>> </span><span class="n">OrderedDict</span><span class="p">(</span><span class="nb">sorted</span><span class="p">(</span><span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="p">(),</span> <span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">t</span><span class="p">:</span> <span class="nb">len</span><span class="p">(</span><span class="n">t</span><span class="p">[</span><span class="mi">0</span><span class="p">])))</span>
|
||||
<span class="go">OrderedDict([('pear', 1), ('apple', 4), ('orange', 2), ('banana', 3)])</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>The new sorted dictionaries maintain their sort order when entries
|
||||
are deleted. But when new keys are added, the keys are appended
|
||||
to the end and the sort is not maintained.</p>
|
||||
</section>
|
||||
<section id="pep-378-format-specifier-for-thousands-separator">
|
||||
<h2>PEP 378: Format Specifier for Thousands Separator<a class="headerlink" href="#pep-378-format-specifier-for-thousands-separator" title="Link to this heading">¶</a></h2>
|
||||
<p>The built-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> function and 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 use
|
||||
a mini-language that now includes a simple, non-locale aware way to format
|
||||
a number with a thousands separator. That provides a way to humanize a
|
||||
program’s output, improving its professional appearance and readability:</p>
|
||||
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="nb">format</span><span class="p">(</span><span class="mi">1234567</span><span class="p">,</span> <span class="s1">',d'</span><span class="p">)</span>
|
||||
<span class="go">'1,234,567'</span>
|
||||
<span class="gp">>>> </span><span class="nb">format</span><span class="p">(</span><span class="mf">1234567.89</span><span class="p">,</span> <span class="s1">',.2f'</span><span class="p">)</span>
|
||||
<span class="go">'1,234,567.89'</span>
|
||||
<span class="gp">>>> </span><span class="nb">format</span><span class="p">(</span><span class="mf">12345.6</span> <span class="o">+</span> <span class="mf">8901234.12</span><span class="n">j</span><span class="p">,</span> <span class="s1">',f'</span><span class="p">)</span>
|
||||
<span class="go">'12,345.600000+8,901,234.120000j'</span>
|
||||
<span class="gp">>>> </span><span class="nb">format</span><span class="p">(</span><span class="n">Decimal</span><span class="p">(</span><span class="s1">'1234567.89'</span><span class="p">),</span> <span class="s1">',f'</span><span class="p">)</span>
|
||||
<span class="go">'1,234,567.89'</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>The supported types are <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 <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>.</p>
|
||||
<p>Discussions are underway about how to specify alternative separators
|
||||
like dots, spaces, apostrophes, or underscores. Locale-aware applications
|
||||
should use the existing <em>n</em> format specifier which already has some support
|
||||
for thousands separators.</p>
|
||||
<div class="admonition seealso">
|
||||
<p class="admonition-title">See also</p>
|
||||
<dl class="simple">
|
||||
<dt><span class="target" id="index-1"></span><a class="pep reference external" href="https://peps.python.org/pep-0378/"><strong>PEP 378</strong></a> - Format Specifier for Thousands Separator</dt><dd><p>PEP written by Raymond Hettinger and implemented by Eric Smith and
|
||||
Mark Dickinson.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</section>
|
||||
<section id="other-language-changes">
|
||||
<h2>Other Language Changes<a class="headerlink" href="#other-language-changes" title="Link to this heading">¶</a></h2>
|
||||
<p>Some smaller changes made to the core Python language are:</p>
|
||||
<ul>
|
||||
<li><p>Directories and zip archives containing a <code class="file docutils literal notranslate"><span class="pre">__main__.py</span></code>
|
||||
file can now be executed directly by passing their name to the
|
||||
interpreter. The directory/zipfile is automatically inserted as the
|
||||
first entry in sys.path. (Suggestion and initial patch by Andy Chu;
|
||||
revised patch by Phillip J. Eby and Nick Coghlan; <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1739468">bpo-1739468</a>.)</p></li>
|
||||
<li><p>The <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> type gained a <code class="docutils literal notranslate"><span class="pre">bit_length</span></code> method that returns the
|
||||
number of bits necessary to represent its argument in binary:</p>
|
||||
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">n</span> <span class="o">=</span> <span class="mi">37</span>
|
||||
<span class="gp">>>> </span><span class="nb">bin</span><span class="p">(</span><span class="mi">37</span><span class="p">)</span>
|
||||
<span class="go">'0b100101'</span>
|
||||
<span class="gp">>>> </span><span class="n">n</span><span class="o">.</span><span class="n">bit_length</span><span class="p">()</span>
|
||||
<span class="go">6</span>
|
||||
<span class="gp">>>> </span><span class="n">n</span> <span class="o">=</span> <span class="mi">2</span><span class="o">**</span><span class="mi">123</span><span class="o">-</span><span class="mi">1</span>
|
||||
<span class="gp">>>> </span><span class="n">n</span><span class="o">.</span><span class="n">bit_length</span><span class="p">()</span>
|
||||
<span class="go">123</span>
|
||||
<span class="gp">>>> </span><span class="p">(</span><span class="n">n</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">bit_length</span><span class="p">()</span>
|
||||
<span class="go">124</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>(Contributed by Fredrik Johansson, Victor Stinner, Raymond Hettinger,
|
||||
and Mark Dickinson; <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=3439">bpo-3439</a>.)</p>
|
||||
</li>
|
||||
<li><p>The fields 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> strings can now be automatically
|
||||
numbered:</p>
|
||||
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="s1">'Sir </span><span class="si">{}</span><span class="s1"> of </span><span class="si">{}</span><span class="s1">'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">'Gallahad'</span><span class="p">,</span> <span class="s1">'Camelot'</span><span class="p">)</span>
|
||||
<span class="go">'Sir Gallahad of Camelot'</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Formerly, the string would have required numbered fields such as:
|
||||
<code class="docutils literal notranslate"><span class="pre">'Sir</span> <span class="pre">{0}</span> <span class="pre">of</span> <span class="pre">{1}'</span></code>.</p>
|
||||
<p>(Contributed by Eric Smith; <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=5237">bpo-5237</a>.)</p>
|
||||
</li>
|
||||
<li><p>The <code class="xref py py-func docutils literal notranslate"><span class="pre">string.maketrans()</span></code> function is deprecated and is replaced by new
|
||||
static methods, <a class="reference internal" href="../library/stdtypes.html#bytes.maketrans" title="bytes.maketrans"><code class="xref py py-meth docutils literal notranslate"><span class="pre">bytes.maketrans()</span></code></a> and <a class="reference internal" href="../library/stdtypes.html#bytearray.maketrans" title="bytearray.maketrans"><code class="xref py py-meth docutils literal notranslate"><span class="pre">bytearray.maketrans()</span></code></a>.
|
||||
This change solves the confusion around which types were supported by 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. 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>, <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> each have their own <strong>maketrans</strong> and <strong>translate</strong>
|
||||
methods with intermediate translation tables of the appropriate type.</p>
|
||||
<p>(Contributed by Georg Brandl; <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=5675">bpo-5675</a>.)</p>
|
||||
</li>
|
||||
<li><p>The syntax of the <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 now allows multiple context
|
||||
managers in a single statement:</p>
|
||||
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s1">'mylog.txt'</span><span class="p">)</span> <span class="k">as</span> <span class="n">infile</span><span class="p">,</span> <span class="nb">open</span><span class="p">(</span><span class="s1">'a.out'</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">)</span> <span class="k">as</span> <span class="n">outfile</span><span class="p">:</span>
|
||||
<span class="gp">... </span> <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">infile</span><span class="p">:</span>
|
||||
<span class="gp">... </span> <span class="k">if</span> <span class="s1">'<critical>'</span> <span class="ow">in</span> <span class="n">line</span><span class="p">:</span>
|
||||
<span class="gp">... </span> <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">line</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>With the new syntax, the <code class="xref py py-func docutils literal notranslate"><span class="pre">contextlib.nested()</span></code> function is no longer
|
||||
needed and is now deprecated.</p>
|
||||
<p>(Contributed by Georg Brandl and Mattias Brändström;
|
||||
<a class="reference external" href="https://codereview.appspot.com/53094">appspot issue 53094</a>.)</p>
|
||||
</li>
|
||||
<li><p><code class="docutils literal notranslate"><span class="pre">round(x,</span> <span class="pre">n)</span></code> now returns an integer if <em>x</em> is an integer.
|
||||
Previously it returned a float:</p>
|
||||
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="nb">round</span><span class="p">(</span><span class="mi">1123</span><span class="p">,</span> <span class="o">-</span><span class="mi">2</span><span class="p">)</span>
|
||||
<span class="go">1100</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>(Contributed by Mark Dickinson; <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4707">bpo-4707</a>.)</p>
|
||||
</li>
|
||||
<li><p>Python now uses David Gay’s algorithm for finding the shortest floating-point
|
||||
representation that doesn’t change its value. This should help
|
||||
mitigate some of the confusion surrounding binary floating-point
|
||||
numbers.</p>
|
||||
<p>The significance is easily seen with a number like <code class="docutils literal notranslate"><span class="pre">1.1</span></code> which does not
|
||||
have an exact equivalent in binary floating point. Since there is no exact
|
||||
equivalent, an expression like <code class="docutils literal notranslate"><span class="pre">float('1.1')</span></code> evaluates to the nearest
|
||||
representable value which is <code class="docutils literal notranslate"><span class="pre">0x1.199999999999ap+0</span></code> in hex or
|
||||
<code class="docutils literal notranslate"><span class="pre">1.100000000000000088817841970012523233890533447265625</span></code> in decimal. That
|
||||
nearest value was and still is used in subsequent floating-point
|
||||
calculations.</p>
|
||||
<p>What is new is how the number gets displayed. Formerly, Python used a
|
||||
simple approach. The value of <code class="docutils literal notranslate"><span class="pre">repr(1.1)</span></code> was computed as <code class="docutils literal notranslate"><span class="pre">format(1.1,</span>
|
||||
<span class="pre">'.17g')</span></code> which evaluated to <code class="docutils literal notranslate"><span class="pre">'1.1000000000000001'</span></code>. The advantage of
|
||||
using 17 digits was that it relied on IEEE-754 guarantees to assure that
|
||||
<code class="docutils literal notranslate"><span class="pre">eval(repr(1.1))</span></code> would round-trip exactly to its original value. The
|
||||
disadvantage is that many people found the output to be confusing (mistaking
|
||||
intrinsic limitations of binary floating-point representation as being a
|
||||
problem with Python itself).</p>
|
||||
<p>The new algorithm for <code class="docutils literal notranslate"><span class="pre">repr(1.1)</span></code> is smarter and returns <code class="docutils literal notranslate"><span class="pre">'1.1'</span></code>.
|
||||
Effectively, it searches all equivalent string representations (ones that
|
||||
get stored with the same underlying float value) and returns the shortest
|
||||
representation.</p>
|
||||
<p>The new algorithm tends to emit cleaner representations when possible, but
|
||||
it does not change the underlying values. So, it is still the case that
|
||||
<code class="docutils literal notranslate"><span class="pre">1.1</span> <span class="pre">+</span> <span class="pre">2.2</span> <span class="pre">!=</span> <span class="pre">3.3</span></code> even though the representations may suggest otherwise.</p>
|
||||
<p>The new algorithm depends on certain features in the underlying floating-point
|
||||
implementation. If the required features are not found, the old
|
||||
algorithm will continue to be used. Also, the text pickle protocols
|
||||
assure cross-platform portability by using the old algorithm.</p>
|
||||
<p>(Contributed by Eric Smith and Mark Dickinson; <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1580">bpo-1580</a>)</p>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="new-improved-and-deprecated-modules">
|
||||
<h2>New, Improved, and Deprecated Modules<a class="headerlink" href="#new-improved-and-deprecated-modules" title="Link to this heading">¶</a></h2>
|
||||
<ul>
|
||||
<li><p>Added a <a class="reference internal" href="../library/collections.html#collections.Counter" title="collections.Counter"><code class="xref py py-class docutils literal notranslate"><span class="pre">collections.Counter</span></code></a> class to support convenient
|
||||
counting of unique items in a sequence or iterable:</p>
|
||||
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">Counter</span><span class="p">([</span><span class="s1">'red'</span><span class="p">,</span> <span class="s1">'blue'</span><span class="p">,</span> <span class="s1">'red'</span><span class="p">,</span> <span class="s1">'green'</span><span class="p">,</span> <span class="s1">'blue'</span><span class="p">,</span> <span class="s1">'blue'</span><span class="p">])</span>
|
||||
<span class="go">Counter({'blue': 3, 'red': 2, 'green': 1})</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>(Contributed by Raymond Hettinger; <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1696199">bpo-1696199</a>.)</p>
|
||||
</li>
|
||||
<li><p>Added a new module, <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> for access to the Tk themed widget set.
|
||||
The basic idea of ttk is to separate, to the extent possible, the code
|
||||
implementing a widget’s behavior from the code implementing its appearance.</p>
|
||||
<p>(Contributed by Guilherme Polo; <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=2983">bpo-2983</a>.)</p>
|
||||
</li>
|
||||
<li><p>The <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/bz2.html#bz2.BZ2File" title="bz2.BZ2File"><code class="xref py py-class docutils literal notranslate"><span class="pre">bz2.BZ2File</span></code></a> classes now support
|
||||
the context management protocol:</p>
|
||||
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="c1"># Automatically close file after writing</span>
|
||||
<span class="gp">>>> </span><span class="k">with</span> <span class="n">gzip</span><span class="o">.</span><span class="n">GzipFile</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="s2">"wb"</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
|
||||
<span class="gp">... </span> <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="sa">b</span><span class="s2">"xxx"</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>(Contributed by Antoine Pitrou.)</p>
|
||||
</li>
|
||||
<li><p>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 now supports methods for creating a
|
||||
decimal object from a binary <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>. The conversion is
|
||||
exact but can sometimes be surprising:</p>
|
||||
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">Decimal</span><span class="o">.</span><span class="n">from_float</span><span class="p">(</span><span class="mf">1.1</span><span class="p">)</span>
|
||||
<span class="go">Decimal('1.100000000000000088817841970012523233890533447265625')</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>The long decimal result shows the actual binary fraction being
|
||||
stored for <em>1.1</em>. The fraction has many digits because <em>1.1</em> cannot
|
||||
be exactly represented in binary.</p>
|
||||
<p>(Contributed by Raymond Hettinger and Mark Dickinson.)</p>
|
||||
</li>
|
||||
<li><p>The <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 grew two new functions. The
|
||||
<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> function is one of
|
||||
four for generating combinatorics including permutations and Cartesian
|
||||
products. The <a class="reference internal" href="../library/itertools.html#itertools.compress" title="itertools.compress"><code class="xref py py-func docutils literal notranslate"><span class="pre">itertools.compress()</span></code></a> function mimics its namesake
|
||||
from APL. Also, the existing <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> function now has
|
||||
an optional <em>step</em> argument and can accept any type of counting
|
||||
sequence including <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/decimal.html#decimal.Decimal" title="decimal.Decimal"><code class="xref py py-class docutils literal notranslate"><span class="pre">decimal.Decimal</span></code></a>:</p>
|
||||
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="p">[</span><span class="n">p</span><span class="o">+</span><span class="n">q</span> <span class="k">for</span> <span class="n">p</span><span class="p">,</span><span class="n">q</span> <span class="ow">in</span> <span class="n">combinations_with_replacement</span><span class="p">(</span><span class="s1">'LOVE'</span><span class="p">,</span> <span class="mi">2</span><span class="p">)]</span>
|
||||
<span class="go">['LL', 'LO', 'LV', 'LE', 'OO', 'OV', 'OE', 'VV', 'VE', 'EE']</span>
|
||||
|
||||
<span class="gp">>>> </span><span class="nb">list</span><span class="p">(</span><span class="n">compress</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="nb">range</span><span class="p">(</span><span class="mi">10</span><span class="p">),</span> <span class="n">selectors</span><span class="o">=</span><span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">]))</span>
|
||||
<span class="go">[2, 3, 5, 7]</span>
|
||||
|
||||
<span class="gp">>>> </span><span class="n">c</span> <span class="o">=</span> <span class="n">count</span><span class="p">(</span><span class="n">start</span><span class="o">=</span><span class="n">Fraction</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">),</span> <span class="n">step</span><span class="o">=</span><span class="n">Fraction</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">6</span><span class="p">))</span>
|
||||
<span class="gp">>>> </span><span class="p">[</span><span class="nb">next</span><span class="p">(</span><span class="n">c</span><span class="p">),</span> <span class="nb">next</span><span class="p">(</span><span class="n">c</span><span class="p">),</span> <span class="nb">next</span><span class="p">(</span><span class="n">c</span><span class="p">),</span> <span class="nb">next</span><span class="p">(</span><span class="n">c</span><span class="p">)]</span>
|
||||
<span class="go">[Fraction(1, 2), Fraction(2, 3), Fraction(5, 6), Fraction(1, 1)]</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>(Contributed by Raymond Hettinger.)</p>
|
||||
</li>
|
||||
<li><p><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 supports a keyword argument
|
||||
<em>rename</em> which lets invalid fieldnames be automatically converted to
|
||||
positional names in the form _0, _1, etc. This is useful when
|
||||
the field names are being created by an external source such as a
|
||||
CSV header, SQL field list, or user input:</p>
|
||||
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">query</span> <span class="o">=</span> <span class="nb">input</span><span class="p">()</span>
|
||||
<span class="go">SELECT region, dept, count(*) FROM main GROUPBY region, dept</span>
|
||||
|
||||
<span class="gp">>>> </span><span class="n">cursor</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="n">query</span><span class="p">)</span>
|
||||
<span class="gp">>>> </span><span class="n">query_fields</span> <span class="o">=</span> <span class="p">[</span><span class="n">desc</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">desc</span> <span class="ow">in</span> <span class="n">cursor</span><span class="o">.</span><span class="n">description</span><span class="p">]</span>
|
||||
<span class="gp">>>> </span><span class="n">UserQuery</span> <span class="o">=</span> <span class="n">namedtuple</span><span class="p">(</span><span class="s1">'UserQuery'</span><span class="p">,</span> <span class="n">query_fields</span><span class="p">,</span> <span class="n">rename</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="gp">>>> </span><span class="n">pprint</span><span class="o">.</span><span class="n">pprint</span><span class="p">([</span><span class="n">UserQuery</span><span class="p">(</span><span class="o">*</span><span class="n">row</span><span class="p">)</span> <span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">cursor</span><span class="p">])</span>
|
||||
<span class="go">[UserQuery(region='South', dept='Shipping', _2=185),</span>
|
||||
<span class="go"> UserQuery(region='North', dept='Accounting', _2=37),</span>
|
||||
<span class="go"> UserQuery(region='West', dept='Sales', _2=419)]</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>(Contributed by Raymond Hettinger; <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1818">bpo-1818</a>.)</p>
|
||||
</li>
|
||||
<li><p>The <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>, <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 <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> functions now
|
||||
accept a flags parameter.</p>
|
||||
<p>(Contributed by Gregory Smith.)</p>
|
||||
</li>
|
||||
<li><p>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 now implements a simple <a class="reference internal" href="../library/logging.handlers.html#logging.NullHandler" title="logging.NullHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">logging.NullHandler</span></code></a>
|
||||
class for applications that are not using logging but are calling
|
||||
library code that does. Setting-up a null handler will suppress
|
||||
spurious warnings such as “No handlers could be found for logger foo”:</p>
|
||||
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">h</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">NullHandler</span><span class="p">()</span>
|
||||
<span class="gp">>>> </span><span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s2">"foo"</span><span class="p">)</span><span class="o">.</span><span class="n">addHandler</span><span class="p">(</span><span class="n">h</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>(Contributed by Vinay Sajip; <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4384">bpo-4384</a>).</p>
|
||||
</li>
|
||||
<li><p>The <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> module which supports the <code class="docutils literal notranslate"><span class="pre">-m</span></code> command line switch
|
||||
now supports the execution of packages by looking for and executing
|
||||
a <code class="docutils literal notranslate"><span class="pre">__main__</span></code> submodule when a package name is supplied.</p>
|
||||
<p>(Contributed by Andi Vajda; <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4195">bpo-4195</a>.)</p>
|
||||
</li>
|
||||
<li><p>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> module can now access and display source code loaded via
|
||||
<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> (or any other conformant <span class="target" id="index-2"></span><a class="pep reference external" href="https://peps.python.org/pep-0302/"><strong>PEP 302</strong></a> loader).</p>
|
||||
<p>(Contributed by Alexander Belopolsky; <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4201">bpo-4201</a>.)</p>
|
||||
</li>
|
||||
<li><p><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> objects can now be pickled.</p></li>
|
||||
</ul>
|
||||
<blockquote>
|
||||
<div><p>(Suggested by Antoine Pitrou and Jesse Noller. Implemented by
|
||||
Jack Diederich; <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=5228">bpo-5228</a>.)</p>
|
||||
</div></blockquote>
|
||||
<ul>
|
||||
<li><p>Add <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> help topics for symbols so that <code class="docutils literal notranslate"><span class="pre">help('@')</span></code>
|
||||
works as expected in the interactive environment.</p>
|
||||
<p>(Contributed by David Laban; <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4739">bpo-4739</a>.)</p>
|
||||
</li>
|
||||
<li><p>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> module now supports skipping individual tests or classes
|
||||
of tests. And it supports marking a test as an expected failure, a test that
|
||||
is known to be broken, but shouldn’t be counted as a failure on a
|
||||
TestResult:</p>
|
||||
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">TestGizmo</span><span class="p">(</span><span class="n">unittest</span><span class="o">.</span><span class="n">TestCase</span><span class="p">):</span>
|
||||
|
||||
<span class="nd">@unittest</span><span class="o">.</span><span class="n">skipUnless</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">platform</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">"win"</span><span class="p">),</span> <span class="s2">"requires Windows"</span><span class="p">)</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">test_gizmo_on_windows</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="o">...</span>
|
||||
|
||||
<span class="nd">@unittest</span><span class="o">.</span><span class="n">expectedFailure</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">test_gimzo_without_required_library</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="o">...</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Also, tests for exceptions have been builtout to work with context managers
|
||||
using the <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>
|
||||
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="k">def</span><span class="w"> </span><span class="nf">test_division_by_zero</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">with</span> <span class="bp">self</span><span class="o">.</span><span class="n">assertRaises</span><span class="p">(</span><span class="ne">ZeroDivisionError</span><span class="p">):</span>
|
||||
<span class="n">x</span> <span class="o">/</span> <span class="mi">0</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>In addition, several new assertion methods were added including
|
||||
<a class="reference internal" href="../library/unittest.html#unittest.TestCase.assertSetEqual" title="unittest.TestCase.assertSetEqual"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertSetEqual()</span></code></a>,
|
||||
<a class="reference internal" href="../library/unittest.html#unittest.TestCase.assertDictEqual" title="unittest.TestCase.assertDictEqual"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertDictEqual()</span></code></a>,
|
||||
<code class="xref py py-meth docutils literal notranslate"><span class="pre">assertDictContainsSubset()</span></code>,
|
||||
<a class="reference internal" href="../library/unittest.html#unittest.TestCase.assertListEqual" title="unittest.TestCase.assertListEqual"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertListEqual()</span></code></a>,
|
||||
<a class="reference internal" href="../library/unittest.html#unittest.TestCase.assertTupleEqual" title="unittest.TestCase.assertTupleEqual"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertTupleEqual()</span></code></a>,
|
||||
<a class="reference internal" href="../library/unittest.html#unittest.TestCase.assertSequenceEqual" title="unittest.TestCase.assertSequenceEqual"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertSequenceEqual()</span></code></a>,
|
||||
<a class="reference internal" href="../library/unittest.html#unittest.TestCase.assertRaisesRegex" title="unittest.TestCase.assertRaisesRegex"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertRaisesRegexp()</span></code></a>,
|
||||
<a class="reference internal" href="../library/unittest.html#unittest.TestCase.assertIsNone" title="unittest.TestCase.assertIsNone"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertIsNone()</span></code></a>,
|
||||
and <a class="reference internal" href="../library/unittest.html#unittest.TestCase.assertIsNotNone" title="unittest.TestCase.assertIsNotNone"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertIsNotNone()</span></code></a>.</p>
|
||||
<p>(Contributed by Benjamin Peterson and Antoine Pitrou.)</p>
|
||||
</li>
|
||||
<li><p>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> module has three new constants for the <a class="reference internal" href="../library/io.html#io.IOBase.seek" title="io.IOBase.seek"><code class="xref py py-meth docutils literal notranslate"><span class="pre">seek()</span></code></a>
|
||||
method: <a class="reference internal" href="../library/os.html#os.SEEK_SET" title="os.SEEK_SET"><code class="xref py py-data docutils literal notranslate"><span class="pre">SEEK_SET</span></code></a>, <a class="reference internal" href="../library/os.html#os.SEEK_CUR" title="os.SEEK_CUR"><code class="xref py py-data docutils literal notranslate"><span class="pre">SEEK_CUR</span></code></a>, and <a class="reference internal" href="../library/os.html#os.SEEK_END" title="os.SEEK_END"><code class="xref py py-data docutils literal notranslate"><span class="pre">SEEK_END</span></code></a>.</p></li>
|
||||
<li><p>The <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> tuple is now a named tuple:</p>
|
||||
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">sys</span><span class="o">.</span><span class="n">version_info</span>
|
||||
<span class="go">sys.version_info(major=3, minor=1, micro=0, releaselevel='alpha', serial=2)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>(Contributed by Ross Light; <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4285">bpo-4285</a>.)</p>
|
||||
</li>
|
||||
<li><p>The <code class="xref py py-mod docutils literal notranslate"><span class="pre">nntplib</span></code> and <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> modules now support IPv6.</p>
|
||||
<p>(Contributed by Derek Morr; <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1655">bpo-1655</a> and <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1664">bpo-1664</a>.)</p>
|
||||
</li>
|
||||
<li><p>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 has been adapted for better interoperability with
|
||||
Python 2.x when used with protocol 2 or lower. The reorganization of the
|
||||
standard library changed the formal reference for many objects. For
|
||||
example, <code class="docutils literal notranslate"><span class="pre">__builtin__.set</span></code> in Python 2 is called <code class="docutils literal notranslate"><span class="pre">builtins.set</span></code> in Python
|
||||
3. This change confounded efforts to share data between different versions of
|
||||
Python. But now when protocol 2 or lower is selected, the pickler will
|
||||
automatically use the old Python 2 names for both loading and dumping. This
|
||||
remapping is turned-on by default but can be disabled with the <em>fix_imports</em>
|
||||
option:</p>
|
||||
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">s</span> <span class="o">=</span> <span class="p">{</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">}</span>
|
||||
<span class="gp">>>> </span><span class="n">pickle</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="n">s</span><span class="p">,</span> <span class="n">protocol</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
|
||||
<span class="go">b'c__builtin__\nset\np0\n((lp1\nL1L\naL2L\naL3L\natp2\nRp3\n.'</span>
|
||||
<span class="gp">>>> </span><span class="n">pickle</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="n">s</span><span class="p">,</span> <span class="n">protocol</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">fix_imports</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
|
||||
<span class="go">b'cbuiltins\nset\np0\n((lp1\nL1L\naL2L\naL3L\natp2\nRp3\n.'</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>An unfortunate but unavoidable side-effect of this change is that protocol 2
|
||||
pickles produced by Python 3.1 won’t be readable with Python 3.0. The latest
|
||||
pickle protocol, protocol 3, should be used when migrating data between
|
||||
Python 3.x implementations, as it doesn’t attempt to remain compatible with
|
||||
Python 2.x.</p>
|
||||
<p>(Contributed by Alexandre Vassalotti and Antoine Pitrou, <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=6137">bpo-6137</a>.)</p>
|
||||
</li>
|
||||
<li><p>A new module, <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> was added. It provides a complete, portable,
|
||||
pure Python reference implementation of the <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> statement and its
|
||||
counterpart, the <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. It represents a substantial
|
||||
step forward in documenting and defining the actions that take place during
|
||||
imports.</p>
|
||||
<p>(Contributed by Brett Cannon.)</p>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="optimizations">
|
||||
<h2>Optimizations<a class="headerlink" href="#optimizations" title="Link to this heading">¶</a></h2>
|
||||
<p>Major performance enhancements have been added:</p>
|
||||
<ul>
|
||||
<li><p>The new I/O library (as defined in <span class="target" id="index-3"></span><a class="pep reference external" href="https://peps.python.org/pep-3116/"><strong>PEP 3116</strong></a>) was mostly written in
|
||||
Python and quickly proved to be a problematic bottleneck in Python 3.0.
|
||||
In Python 3.1, the I/O library has been entirely rewritten in C and is
|
||||
2 to 20 times faster depending on the task at hand. The pure Python
|
||||
version is still available for experimentation purposes through
|
||||
the <code class="docutils literal notranslate"><span class="pre">_pyio</span></code> module.</p>
|
||||
<p>(Contributed by Amaury Forgeot d’Arc and Antoine Pitrou.)</p>
|
||||
</li>
|
||||
<li><p>Added a heuristic so that tuples and dicts containing only untrackable objects
|
||||
are not tracked by the garbage collector. This can reduce the size of
|
||||
collections and therefore the garbage collection overhead on long-running
|
||||
programs, depending on their particular use of datatypes.</p>
|
||||
<p>(Contributed by Antoine Pitrou, <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4688">bpo-4688</a>.)</p>
|
||||
</li>
|
||||
<li><p>Enabling a configure option named <code class="docutils literal notranslate"><span class="pre">--with-computed-gotos</span></code>
|
||||
on compilers that support it (notably: gcc, SunPro, icc), the bytecode
|
||||
evaluation loop is compiled with a new dispatch mechanism which gives
|
||||
speedups of up to 20%, depending on the system, the compiler, and
|
||||
the benchmark.</p>
|
||||
<p>(Contributed by Antoine Pitrou along with a number of other participants,
|
||||
<a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4753">bpo-4753</a>).</p>
|
||||
</li>
|
||||
<li><p>The decoding of UTF-8, UTF-16 and LATIN-1 is now two to four times
|
||||
faster.</p>
|
||||
<p>(Contributed by Antoine Pitrou and Amaury Forgeot d’Arc, <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4868">bpo-4868</a>.)</p>
|
||||
</li>
|
||||
<li><p>The <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 now has a C extension to substantially improve
|
||||
its performance. In addition, the API was modified so that json works
|
||||
only with <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>, not with <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>. That change makes the
|
||||
module closely match the <a class="reference external" href="https://json.org/">JSON specification</a>
|
||||
which is defined in terms of Unicode.</p>
|
||||
<p>(Contributed by Bob Ippolito and converted to Py3.1 by Antoine Pitrou
|
||||
and Benjamin Peterson; <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4136">bpo-4136</a>.)</p>
|
||||
</li>
|
||||
<li><p>Unpickling now interns the attribute names of pickled objects. This saves
|
||||
memory and allows pickles to be smaller.</p>
|
||||
<p>(Contributed by Jake McGuire and Antoine Pitrou; <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=5084">bpo-5084</a>.)</p>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="idle">
|
||||
<h2>IDLE<a class="headerlink" href="#idle" title="Link to this heading">¶</a></h2>
|
||||
<ul>
|
||||
<li><p>IDLE’s format menu now provides an option to strip trailing whitespace
|
||||
from a source file.</p>
|
||||
<p>(Contributed by Roger D. Serwy; <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=5150">bpo-5150</a>.)</p>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="build-and-c-api-changes">
|
||||
<h2>Build and C API Changes<a class="headerlink" href="#build-and-c-api-changes" title="Link to this heading">¶</a></h2>
|
||||
<p>Changes to Python’s build process and to the C API include:</p>
|
||||
<ul>
|
||||
<li><p>Integers are now stored internally either in base <code class="docutils literal notranslate"><span class="pre">2**15</span></code> or in base
|
||||
<code class="docutils literal notranslate"><span class="pre">2**30</span></code>, the base being determined at build time. Previously, they
|
||||
were always stored in base <code class="docutils literal notranslate"><span class="pre">2**15</span></code>. Using base <code class="docutils literal notranslate"><span class="pre">2**30</span></code> gives
|
||||
significant performance improvements on 64-bit machines, but
|
||||
benchmark results on 32-bit machines have been mixed. Therefore,
|
||||
the default is to use base <code class="docutils literal notranslate"><span class="pre">2**30</span></code> on 64-bit machines and base <code class="docutils literal notranslate"><span class="pre">2**15</span></code>
|
||||
on 32-bit machines; on Unix, there’s a new configure option
|
||||
<code class="docutils literal notranslate"><span class="pre">--enable-big-digits</span></code> that can be used to override this default.</p>
|
||||
<p>Apart from the performance improvements this change should be invisible to
|
||||
end users, with one exception: for testing and debugging purposes there’s a
|
||||
new <a class="reference internal" href="../library/sys.html#sys.int_info" title="sys.int_info"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.int_info</span></code></a> that provides information about the
|
||||
internal format, giving the number of bits per digit and the size in bytes
|
||||
of the C type used to store each digit:</p>
|
||||
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">import</span><span class="w"> </span><span class="nn">sys</span>
|
||||
<span class="gp">>>> </span><span class="n">sys</span><span class="o">.</span><span class="n">int_info</span>
|
||||
<span class="go">sys.int_info(bits_per_digit=30, sizeof_digit=4)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>(Contributed by Mark Dickinson; <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4258">bpo-4258</a>.)</p>
|
||||
</li>
|
||||
<li><p>The <a class="reference internal" href="../c-api/long.html#c.PyLong_AsUnsignedLongLong" title="PyLong_AsUnsignedLongLong"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_AsUnsignedLongLong()</span></code></a> function now handles a negative
|
||||
<em>pylong</em> by raising <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 <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>
|
||||
<p>(Contributed by Mark Dickinson and Lisandro Dalcrin; <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=5175">bpo-5175</a>.)</p>
|
||||
</li>
|
||||
<li><p>Deprecated <code class="xref c c-func docutils literal notranslate"><span class="pre">PyNumber_Int()</span></code>. Use <a class="reference internal" href="../c-api/number.html#c.PyNumber_Long" title="PyNumber_Long"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyNumber_Long()</span></code></a> instead.</p>
|
||||
<p>(Contributed by Mark Dickinson; <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4910">bpo-4910</a>.)</p>
|
||||
</li>
|
||||
<li><p>Added a new <a class="reference internal" href="../c-api/conversion.html#c.PyOS_string_to_double" title="PyOS_string_to_double"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyOS_string_to_double()</span></code></a> function to replace the
|
||||
deprecated functions <code class="xref c c-func docutils literal notranslate"><span class="pre">PyOS_ascii_strtod()</span></code> and <code class="xref c c-func docutils literal notranslate"><span class="pre">PyOS_ascii_atof()</span></code>.</p>
|
||||
<p>(Contributed by Mark Dickinson; <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=5914">bpo-5914</a>.)</p>
|
||||
</li>
|
||||
<li><p>Added <a class="reference internal" href="../c-api/capsule.html#c.PyCapsule" title="PyCapsule"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyCapsule</span></code></a> as a replacement for the <code class="xref c c-type docutils literal notranslate"><span class="pre">PyCObject</span></code> API.
|
||||
The principal difference is that the new type has a well defined interface
|
||||
for passing typing safety information and a less complicated signature
|
||||
for calling a destructor. The old type had a problematic API and is now
|
||||
deprecated.</p>
|
||||
<p>(Contributed by Larry Hastings; <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=5630">bpo-5630</a>.)</p>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="porting-to-python-3-1">
|
||||
<h2>Porting to Python 3.1<a class="headerlink" href="#porting-to-python-3-1" title="Link to this heading">¶</a></h2>
|
||||
<p>This section lists previously described changes and other bugfixes
|
||||
that may require changes to your code:</p>
|
||||
<ul>
|
||||
<li><p>The new floating-point string representations can break existing doctests.
|
||||
For example:</p>
|
||||
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="k">def</span><span class="w"> </span><span class="nf">e</span><span class="p">():</span>
|
||||
<span class="w"> </span><span class="sd">'''Compute the base of natural logarithms.</span>
|
||||
|
||||
<span class="sd"> >>> e()</span>
|
||||
<span class="sd"> 2.7182818284590451</span>
|
||||
|
||||
<span class="sd"> '''</span>
|
||||
<span class="k">return</span> <span class="nb">sum</span><span class="p">(</span><span class="mi">1</span><span class="o">/</span><span class="n">math</span><span class="o">.</span><span class="n">factorial</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="nb">reversed</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">30</span><span class="p">)))</span>
|
||||
|
||||
<span class="n">doctest</span><span class="o">.</span><span class="n">testmod</span><span class="p">()</span>
|
||||
|
||||
<span class="o">**********************************************************************</span>
|
||||
<span class="n">Failed</span> <span class="n">example</span><span class="p">:</span>
|
||||
<span class="n">e</span><span class="p">()</span>
|
||||
<span class="n">Expected</span><span class="p">:</span>
|
||||
<span class="mf">2.7182818284590451</span>
|
||||
<span class="n">Got</span><span class="p">:</span>
|
||||
<span class="mf">2.718281828459045</span>
|
||||
<span class="o">**********************************************************************</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</li>
|
||||
<li><p>The automatic name remapping in the pickle module for protocol 2 or lower can
|
||||
make Python 3.1 pickles unreadable in Python 3.0. One solution is to use
|
||||
protocol 3. Another solution is to set the <em>fix_imports</em> option to <code class="docutils literal notranslate"><span class="pre">False</span></code>.
|
||||
See the discussion above for more details.</p></li>
|
||||
</ul>
|
||||
</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="#">What’s New In Python 3.1</a><ul>
|
||||
<li><a class="reference internal" href="#pep-372-ordered-dictionaries">PEP 372: Ordered Dictionaries</a></li>
|
||||
<li><a class="reference internal" href="#pep-378-format-specifier-for-thousands-separator">PEP 378: Format Specifier for Thousands Separator</a></li>
|
||||
<li><a class="reference internal" href="#other-language-changes">Other Language Changes</a></li>
|
||||
<li><a class="reference internal" href="#new-improved-and-deprecated-modules">New, Improved, and Deprecated Modules</a></li>
|
||||
<li><a class="reference internal" href="#optimizations">Optimizations</a></li>
|
||||
<li><a class="reference internal" href="#idle">IDLE</a></li>
|
||||
<li><a class="reference internal" href="#build-and-c-api-changes">Build and C API Changes</a></li>
|
||||
<li><a class="reference internal" href="#porting-to-python-3-1">Porting to Python 3.1</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="3.2.html"
|
||||
title="previous chapter">What’s New In Python 3.2</a></p>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="3.0.html"
|
||||
title="next chapter">What’s New In Python 3.0</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/3.1.rst"
|
||||
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="3.0.html" title="What’s New In Python 3.0"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="3.2.html" title="What’s New In Python 3.2"
|
||||
>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.13.5 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="">What’s New In Python 3.1</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-2025, 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 Jun 11, 2025 (15:56 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>
|
||||
2584
Utils/PythonNew32/Doc/html/whatsnew/3.10.html
Normal file
2584
Utils/PythonNew32/Doc/html/whatsnew/3.10.html
Normal file
File diff suppressed because it is too large
Load Diff
2991
Utils/PythonNew32/Doc/html/whatsnew/3.11.html
Normal file
2991
Utils/PythonNew32/Doc/html/whatsnew/3.11.html
Normal file
File diff suppressed because it is too large
Load Diff
3285
Utils/PythonNew32/Doc/html/whatsnew/3.12.html
Normal file
3285
Utils/PythonNew32/Doc/html/whatsnew/3.12.html
Normal file
File diff suppressed because it is too large
Load Diff
3753
Utils/PythonNew32/Doc/html/whatsnew/3.13.html
Normal file
3753
Utils/PythonNew32/Doc/html/whatsnew/3.13.html
Normal file
File diff suppressed because it is too large
Load Diff
2939
Utils/PythonNew32/Doc/html/whatsnew/3.2.html
Normal file
2939
Utils/PythonNew32/Doc/html/whatsnew/3.2.html
Normal file
File diff suppressed because it is too large
Load Diff
2767
Utils/PythonNew32/Doc/html/whatsnew/3.3.html
Normal file
2767
Utils/PythonNew32/Doc/html/whatsnew/3.3.html
Normal file
File diff suppressed because it is too large
Load Diff
2597
Utils/PythonNew32/Doc/html/whatsnew/3.4.html
Normal file
2597
Utils/PythonNew32/Doc/html/whatsnew/3.4.html
Normal file
File diff suppressed because it is too large
Load Diff
2694
Utils/PythonNew32/Doc/html/whatsnew/3.5.html
Normal file
2694
Utils/PythonNew32/Doc/html/whatsnew/3.5.html
Normal file
File diff suppressed because it is too large
Load Diff
2601
Utils/PythonNew32/Doc/html/whatsnew/3.6.html
Normal file
2601
Utils/PythonNew32/Doc/html/whatsnew/3.6.html
Normal file
File diff suppressed because it is too large
Load Diff
2696
Utils/PythonNew32/Doc/html/whatsnew/3.7.html
Normal file
2696
Utils/PythonNew32/Doc/html/whatsnew/3.7.html
Normal file
File diff suppressed because it is too large
Load Diff
2506
Utils/PythonNew32/Doc/html/whatsnew/3.8.html
Normal file
2506
Utils/PythonNew32/Doc/html/whatsnew/3.8.html
Normal file
File diff suppressed because it is too large
Load Diff
1871
Utils/PythonNew32/Doc/html/whatsnew/3.9.html
Normal file
1871
Utils/PythonNew32/Doc/html/whatsnew/3.9.html
Normal file
File diff suppressed because it is too large
Load Diff
39589
Utils/PythonNew32/Doc/html/whatsnew/changelog.html
Normal file
39589
Utils/PythonNew32/Doc/html/whatsnew/changelog.html
Normal file
File diff suppressed because it is too large
Load Diff
866
Utils/PythonNew32/Doc/html/whatsnew/index.html
Normal file
866
Utils/PythonNew32/Doc/html/whatsnew/index.html
Normal file
@@ -0,0 +1,866 @@
|
||||
<!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="What’s New in Python" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="https://docs.python.org/3/whatsnew/index.html" />
|
||||
<meta property="og:site_name" content="Python documentation" />
|
||||
<meta property="og:description" content="The “What’s New in Python” series of essays takes tours through the most important changes between major Python versions. They are a “must read” for anyone wishing to stay up-to-date after a new re..." />
|
||||
<meta property="og:image" content="_static/og-image.png" />
|
||||
<meta property="og:image:alt" content="Python documentation" />
|
||||
<meta name="description" content="The “What’s New in Python” series of essays takes tours through the most important changes between major Python versions. They are a “must read” for anyone wishing to stay up-to-date after a new re..." />
|
||||
<meta name="theme-color" content="#3776ab">
|
||||
<meta property="og:image:width" content="200">
|
||||
<meta property="og:image:height" content="200">
|
||||
|
||||
<title>What’s New in Python — Python 3.13.5 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=5ff89526" />
|
||||
<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=32a6def9"></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.13.5 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="What’s New In Python 3.13" href="3.13.html" />
|
||||
<link rel="prev" title="Python Documentation contents" href="../contents.html" />
|
||||
|
||||
|
||||
<link rel="canonical" href="https://docs.python.org/3/whatsnew/index.html">
|
||||
|
||||
|
||||
|
||||
|
||||
<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>
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="../contents.html"
|
||||
title="previous chapter">Python Documentation contents</a></p>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="3.13.html"
|
||||
title="next chapter">What’s New In Python 3.13</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/index.rst"
|
||||
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="3.13.html" title="What’s New In Python 3.13"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="../contents.html" title="Python Documentation contents"
|
||||
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.13.5 Documentation</a> »
|
||||
</li>
|
||||
|
||||
<li class="nav-item nav-item-this"><a href="">What’s New in Python</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="what-s-new-in-python">
|
||||
<span id="whatsnew-index"></span><h1>What’s New in Python<a class="headerlink" href="#what-s-new-in-python" title="Link to this heading">¶</a></h1>
|
||||
<p>The “What’s New in Python” series of essays takes tours through the most
|
||||
important changes between major Python versions. They are a “must read” for
|
||||
anyone wishing to stay up-to-date after a new release.</p>
|
||||
<div class="toctree-wrapper compound">
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="3.13.html">What’s New In Python 3.13</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.13.html#summary-release-highlights">Summary – Release Highlights</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.13.html#new-features">New Features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.13.html#other-language-changes">Other Language Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.13.html#new-modules">New Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.13.html#improved-modules">Improved Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.13.html#optimizations">Optimizations</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.13.html#removed-modules-and-apis">Removed Modules And APIs</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.13.html#new-deprecations">New Deprecations</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.13.html#cpython-bytecode-changes">CPython Bytecode Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.13.html#c-api-changes">C API Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.13.html#build-changes">Build Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.13.html#porting-to-python-3-13">Porting to Python 3.13</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.13.html#regression-test-changes">Regression Test Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.13.html#notable-changes-in-3-13-1">Notable changes in 3.13.1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.13.html#notable-changes-in-3-13-4">Notable changes in 3.13.4</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="3.12.html">What’s New In Python 3.12</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.12.html#summary-release-highlights">Summary – Release highlights</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.12.html#new-features">New Features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.12.html#new-features-related-to-type-hints">New Features Related to Type Hints</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.12.html#other-language-changes">Other Language Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.12.html#new-modules">New Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.12.html#improved-modules">Improved Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.12.html#optimizations">Optimizations</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.12.html#cpython-bytecode-changes">CPython bytecode changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.12.html#demos-and-tools">Demos and Tools</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.12.html#deprecated">Deprecated</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.12.html#removed">Removed</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.12.html#porting-to-python-3-12">Porting to Python 3.12</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.12.html#build-changes">Build Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.12.html#c-api-changes">C API Changes</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="3.11.html">What’s New In Python 3.11</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.11.html#summary-release-highlights">Summary – Release highlights</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.11.html#new-features">New Features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.11.html#new-features-related-to-type-hints">New Features Related to Type Hints</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.11.html#other-language-changes">Other Language Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.11.html#other-cpython-implementation-changes">Other CPython Implementation Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.11.html#new-modules">New Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.11.html#improved-modules">Improved Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.11.html#optimizations">Optimizations</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.11.html#faster-cpython">Faster CPython</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.11.html#cpython-bytecode-changes">CPython bytecode changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.11.html#deprecated">Deprecated</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.11.html#pending-removal-in-python-3-12">Pending Removal in Python 3.12</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.11.html#removed">Removed</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.11.html#porting-to-python-3-11">Porting to Python 3.11</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.11.html#build-changes">Build Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.11.html#c-api-changes">C API Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.11.html#notable-changes-in-3-11-4">Notable changes in 3.11.4</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.11.html#notable-changes-in-3-11-5">Notable changes in 3.11.5</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="3.10.html">What’s New In Python 3.10</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.10.html#summary-release-highlights">Summary – Release highlights</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.10.html#new-features">New Features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.10.html#new-features-related-to-type-hints">New Features Related to Type Hints</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.10.html#other-language-changes">Other Language Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.10.html#new-modules">New Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.10.html#improved-modules">Improved Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.10.html#optimizations">Optimizations</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.10.html#deprecated">Deprecated</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.10.html#removed">Removed</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.10.html#porting-to-python-3-10">Porting to Python 3.10</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.10.html#cpython-bytecode-changes">CPython bytecode changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.10.html#build-changes">Build Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.10.html#c-api-changes">C API Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.10.html#notable-security-feature-in-3-10-7">Notable security feature in 3.10.7</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.10.html#notable-security-feature-in-3-10-8">Notable security feature in 3.10.8</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.10.html#notable-changes-in-3-10-12">Notable changes in 3.10.12</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="3.9.html">What’s New In Python 3.9</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.9.html#summary-release-highlights">Summary – Release highlights</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.9.html#you-should-check-for-deprecationwarning-in-your-code">You should check for DeprecationWarning in your code</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.9.html#new-features">New Features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.9.html#other-language-changes">Other Language Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.9.html#new-modules">New Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.9.html#improved-modules">Improved Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.9.html#optimizations">Optimizations</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.9.html#deprecated">Deprecated</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.9.html#removed">Removed</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.9.html#porting-to-python-3-9">Porting to Python 3.9</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.9.html#build-changes">Build Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.9.html#c-api-changes">C API Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.9.html#notable-changes-in-python-3-9-1">Notable changes in Python 3.9.1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.9.html#notable-changes-in-python-3-9-2">Notable changes in Python 3.9.2</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.9.html#notable-changes-in-python-3-9-3">Notable changes in Python 3.9.3</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.9.html#notable-changes-in-python-3-9-5">Notable changes in Python 3.9.5</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.9.html#notable-security-feature-in-3-9-14">Notable security feature in 3.9.14</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.9.html#notable-changes-in-3-9-17">Notable changes in 3.9.17</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="3.8.html">What’s New In Python 3.8</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.8.html#summary-release-highlights">Summary – Release highlights</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.8.html#new-features">New Features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.8.html#other-language-changes">Other Language Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.8.html#new-modules">New Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.8.html#improved-modules">Improved Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.8.html#optimizations">Optimizations</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.8.html#build-and-c-api-changes">Build and C API Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.8.html#deprecated">Deprecated</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.8.html#api-and-feature-removals">API and Feature Removals</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.8.html#porting-to-python-3-8">Porting to Python 3.8</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.8.html#notable-changes-in-python-3-8-1">Notable changes in Python 3.8.1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.8.html#notable-changes-in-python-3-8-2">Notable changes in Python 3.8.2</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.8.html#notable-changes-in-python-3-8-3">Notable changes in Python 3.8.3</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.8.html#notable-changes-in-python-3-8-8">Notable changes in Python 3.8.8</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.8.html#notable-changes-in-python-3-8-9">Notable changes in Python 3.8.9</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.8.html#notable-changes-in-python-3-8-10">Notable changes in Python 3.8.10</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.8.html#id1">Notable changes in Python 3.8.10</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.8.html#notable-changes-in-python-3-8-12">Notable changes in Python 3.8.12</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.8.html#notable-security-feature-in-3-8-14">Notable security feature in 3.8.14</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.8.html#notable-changes-in-3-8-17">Notable changes in 3.8.17</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="3.7.html">What’s New In Python 3.7</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.7.html#summary-release-highlights">Summary – Release Highlights</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.7.html#new-features">New Features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.7.html#other-language-changes">Other Language Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.7.html#new-modules">New Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.7.html#improved-modules">Improved Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.7.html#c-api-changes">C API Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.7.html#build-changes">Build Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.7.html#optimizations">Optimizations</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.7.html#other-cpython-implementation-changes">Other CPython Implementation Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.7.html#deprecated-python-behavior">Deprecated Python Behavior</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.7.html#deprecated-python-modules-functions-and-methods">Deprecated Python modules, functions and methods</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.7.html#deprecated-functions-and-types-of-the-c-api">Deprecated functions and types of the C API</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.7.html#platform-support-removals">Platform Support Removals</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.7.html#api-and-feature-removals">API and Feature Removals</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.7.html#module-removals">Module Removals</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.7.html#windows-only-changes">Windows-only Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.7.html#porting-to-python-3-7">Porting to Python 3.7</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.7.html#notable-changes-in-python-3-7-1">Notable changes in Python 3.7.1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.7.html#notable-changes-in-python-3-7-2">Notable changes in Python 3.7.2</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.7.html#notable-changes-in-python-3-7-6">Notable changes in Python 3.7.6</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.7.html#notable-changes-in-python-3-7-10">Notable changes in Python 3.7.10</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.7.html#notable-changes-in-python-3-7-11">Notable changes in Python 3.7.11</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.7.html#notable-security-feature-in-3-7-14">Notable security feature in 3.7.14</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="3.6.html">What’s New In Python 3.6</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.6.html#summary-release-highlights">Summary – Release highlights</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.6.html#new-features">New Features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.6.html#other-language-changes">Other Language Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.6.html#new-modules">New Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.6.html#improved-modules">Improved Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.6.html#optimizations">Optimizations</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.6.html#build-and-c-api-changes">Build and C API Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.6.html#other-improvements">Other Improvements</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.6.html#deprecated">Deprecated</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.6.html#removed">Removed</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.6.html#porting-to-python-3-6">Porting to Python 3.6</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.6.html#notable-changes-in-python-3-6-2">Notable changes in Python 3.6.2</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.6.html#notable-changes-in-python-3-6-4">Notable changes in Python 3.6.4</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.6.html#notable-changes-in-python-3-6-5">Notable changes in Python 3.6.5</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.6.html#notable-changes-in-python-3-6-7">Notable changes in Python 3.6.7</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.6.html#notable-changes-in-python-3-6-10">Notable changes in Python 3.6.10</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.6.html#notable-changes-in-python-3-6-13">Notable changes in Python 3.6.13</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.6.html#notable-changes-in-python-3-6-14">Notable changes in Python 3.6.14</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="3.5.html">What’s New In Python 3.5</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.5.html#summary-release-highlights">Summary – Release highlights</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.5.html#new-features">New Features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.5.html#other-language-changes">Other Language Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.5.html#new-modules">New Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.5.html#improved-modules">Improved Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.5.html#other-module-level-changes">Other module-level changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.5.html#optimizations">Optimizations</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.5.html#build-and-c-api-changes">Build and C API Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.5.html#deprecated">Deprecated</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.5.html#removed">Removed</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.5.html#porting-to-python-3-5">Porting to Python 3.5</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.5.html#notable-changes-in-python-3-5-4">Notable changes in Python 3.5.4</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="3.4.html">What’s New In Python 3.4</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.4.html#summary-release-highlights">Summary – Release Highlights</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.4.html#new-features">New Features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.4.html#new-modules">New Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.4.html#improved-modules">Improved Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.4.html#cpython-implementation-changes">CPython Implementation Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.4.html#deprecated">Deprecated</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.4.html#removed">Removed</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.4.html#porting-to-python-3-4">Porting to Python 3.4</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.4.html#changed-in-3-4-3">Changed in 3.4.3</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="3.3.html">What’s New In Python 3.3</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.3.html#summary-release-highlights">Summary – Release highlights</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.3.html#pep-405-virtual-environments">PEP 405: Virtual Environments</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.3.html#pep-420-implicit-namespace-packages">PEP 420: Implicit Namespace Packages</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.3.html#pep-3118-new-memoryview-implementation-and-buffer-protocol-documentation">PEP 3118: New memoryview implementation and buffer protocol documentation</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.3.html#pep-393-flexible-string-representation">PEP 393: Flexible String Representation</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.3.html#pep-397-python-launcher-for-windows">PEP 397: Python Launcher for Windows</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.3.html#pep-3151-reworking-the-os-and-io-exception-hierarchy">PEP 3151: Reworking the OS and IO exception hierarchy</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.3.html#pep-380-syntax-for-delegating-to-a-subgenerator">PEP 380: Syntax for Delegating to a Subgenerator</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.3.html#pep-409-suppressing-exception-context">PEP 409: Suppressing exception context</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.3.html#pep-414-explicit-unicode-literals">PEP 414: Explicit Unicode literals</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.3.html#pep-3155-qualified-name-for-classes-and-functions">PEP 3155: Qualified name for classes and functions</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.3.html#pep-412-key-sharing-dictionary">PEP 412: Key-Sharing Dictionary</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.3.html#pep-362-function-signature-object">PEP 362: Function Signature Object</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.3.html#pep-421-adding-sys-implementation">PEP 421: Adding sys.implementation</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.3.html#using-importlib-as-the-implementation-of-import">Using importlib as the Implementation of Import</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.3.html#other-language-changes">Other Language Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.3.html#a-finer-grained-import-lock">A Finer-Grained Import Lock</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.3.html#builtin-functions-and-types">Builtin functions and types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.3.html#new-modules">New Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.3.html#improved-modules">Improved Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.3.html#optimizations">Optimizations</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.3.html#build-and-c-api-changes">Build and C API Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.3.html#deprecated">Deprecated</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.3.html#porting-to-python-3-3">Porting to Python 3.3</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="3.2.html">What’s New In Python 3.2</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.2.html#pep-384-defining-a-stable-abi">PEP 384: Defining a Stable ABI</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.2.html#pep-389-argparse-command-line-parsing-module">PEP 389: Argparse Command Line Parsing Module</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.2.html#pep-391-dictionary-based-configuration-for-logging">PEP 391: Dictionary Based Configuration for Logging</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.2.html#pep-3148-the-concurrent-futures-module">PEP 3148: The <code class="docutils literal notranslate"><span class="pre">concurrent.futures</span></code> module</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.2.html#pep-3147-pyc-repository-directories">PEP 3147: PYC Repository Directories</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.2.html#pep-3149-abi-version-tagged-so-files">PEP 3149: ABI Version Tagged .so Files</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.2.html#pep-3333-python-web-server-gateway-interface-v1-0-1">PEP 3333: Python Web Server Gateway Interface v1.0.1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.2.html#other-language-changes">Other Language Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.2.html#new-improved-and-deprecated-modules">New, Improved, and Deprecated Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.2.html#multi-threading">Multi-threading</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.2.html#optimizations">Optimizations</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.2.html#unicode">Unicode</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.2.html#codecs">Codecs</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.2.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.2.html#idle">IDLE</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.2.html#code-repository">Code Repository</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.2.html#build-and-c-api-changes">Build and C API Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.2.html#porting-to-python-3-2">Porting to Python 3.2</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="3.1.html">What’s New In Python 3.1</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.1.html#pep-372-ordered-dictionaries">PEP 372: Ordered Dictionaries</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.1.html#pep-378-format-specifier-for-thousands-separator">PEP 378: Format Specifier for Thousands Separator</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.1.html#other-language-changes">Other Language Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.1.html#new-improved-and-deprecated-modules">New, Improved, and Deprecated Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.1.html#optimizations">Optimizations</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.1.html#idle">IDLE</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.1.html#build-and-c-api-changes">Build and C API Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.1.html#porting-to-python-3-1">Porting to Python 3.1</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="3.0.html">What’s New In Python 3.0</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.0.html#common-stumbling-blocks">Common Stumbling Blocks</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.0.html#overview-of-syntax-changes">Overview Of Syntax Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.0.html#changes-already-present-in-python-2-6">Changes Already Present In Python 2.6</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.0.html#library-changes">Library Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.0.html#pep-3101-a-new-approach-to-string-formatting"><strong>PEP 3101</strong>: A New Approach To String Formatting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.0.html#changes-to-exceptions">Changes To Exceptions</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.0.html#miscellaneous-other-changes">Miscellaneous Other Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.0.html#build-and-c-api-changes">Build and C API Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.0.html#performance">Performance</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="3.0.html#porting-to-python-3-0">Porting To Python 3.0</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="2.7.html">What’s New in Python 2.7</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.7.html#the-future-for-python-2-x">The Future for Python 2.x</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.7.html#changes-to-the-handling-of-deprecation-warnings">Changes to the Handling of Deprecation Warnings</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.7.html#python-3-1-features">Python 3.1 Features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.7.html#pep-372-adding-an-ordered-dictionary-to-collections">PEP 372: Adding an Ordered Dictionary to collections</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.7.html#pep-378-format-specifier-for-thousands-separator">PEP 378: Format Specifier for Thousands Separator</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.7.html#pep-389-the-argparse-module-for-parsing-command-lines">PEP 389: The argparse Module for Parsing Command Lines</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.7.html#pep-391-dictionary-based-configuration-for-logging">PEP 391: Dictionary-Based Configuration For Logging</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.7.html#pep-3106-dictionary-views">PEP 3106: Dictionary Views</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.7.html#pep-3137-the-memoryview-object">PEP 3137: The memoryview Object</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.7.html#other-language-changes">Other Language Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.7.html#new-and-improved-modules">New and Improved Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.7.html#build-and-c-api-changes">Build and C API Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.7.html#other-changes-and-fixes">Other Changes and Fixes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.7.html#porting-to-python-2-7">Porting to Python 2.7</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.7.html#new-features-added-to-python-2-7-maintenance-releases">New Features Added to Python 2.7 Maintenance Releases</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.7.html#acknowledgements">Acknowledgements</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="2.6.html">What’s New in Python 2.6</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.6.html#python-3-0">Python 3.0</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.6.html#changes-to-the-development-process">Changes to the Development Process</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.6.html#pep-343-the-with-statement">PEP 343: The ‘with’ statement</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.6.html#pep-366-explicit-relative-imports-from-a-main-module">PEP 366: Explicit Relative Imports From a Main Module</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.6.html#pep-370-per-user-site-packages-directory">PEP 370: Per-user <code class="docutils literal notranslate"><span class="pre">site-packages</span></code> Directory</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.6.html#pep-371-the-multiprocessing-package">PEP 371: The <code class="docutils literal notranslate"><span class="pre">multiprocessing</span></code> Package</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.6.html#pep-3101-advanced-string-formatting">PEP 3101: Advanced String Formatting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.6.html#pep-3105-print-as-a-function">PEP 3105: <code class="docutils literal notranslate"><span class="pre">print</span></code> As a Function</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.6.html#pep-3110-exception-handling-changes">PEP 3110: Exception-Handling Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.6.html#pep-3112-byte-literals">PEP 3112: Byte Literals</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.6.html#pep-3116-new-i-o-library">PEP 3116: New I/O Library</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.6.html#pep-3118-revised-buffer-protocol">PEP 3118: Revised Buffer Protocol</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.6.html#pep-3119-abstract-base-classes">PEP 3119: Abstract Base Classes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.6.html#pep-3127-integer-literal-support-and-syntax">PEP 3127: Integer Literal Support and Syntax</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.6.html#pep-3129-class-decorators">PEP 3129: Class Decorators</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.6.html#pep-3141-a-type-hierarchy-for-numbers">PEP 3141: A Type Hierarchy for Numbers</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.6.html#other-language-changes">Other Language Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.6.html#new-and-improved-modules">New and Improved Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.6.html#deprecations-and-removals">Deprecations and Removals</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.6.html#build-and-c-api-changes">Build and C API Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.6.html#porting-to-python-2-6">Porting to Python 2.6</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.6.html#acknowledgements">Acknowledgements</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="2.5.html">What’s New in Python 2.5</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.5.html#pep-308-conditional-expressions">PEP 308: Conditional Expressions</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.5.html#pep-309-partial-function-application">PEP 309: Partial Function Application</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.5.html#pep-314-metadata-for-python-software-packages-v1-1">PEP 314: Metadata for Python Software Packages v1.1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.5.html#pep-328-absolute-and-relative-imports">PEP 328: Absolute and Relative Imports</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.5.html#pep-338-executing-modules-as-scripts">PEP 338: Executing Modules as Scripts</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.5.html#pep-341-unified-try-except-finally">PEP 341: Unified try/except/finally</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.5.html#pep-342-new-generator-features">PEP 342: New Generator Features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.5.html#pep-343-the-with-statement">PEP 343: The ‘with’ statement</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.5.html#pep-352-exceptions-as-new-style-classes">PEP 352: Exceptions as New-Style Classes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.5.html#pep-353-using-ssize-t-as-the-index-type">PEP 353: Using ssize_t as the index type</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.5.html#pep-357-the-index-method">PEP 357: The ‘__index__’ method</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.5.html#other-language-changes">Other Language Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.5.html#new-improved-and-removed-modules">New, Improved, and Removed Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.5.html#build-and-c-api-changes">Build and C API Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.5.html#porting-to-python-2-5">Porting to Python 2.5</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.5.html#acknowledgements">Acknowledgements</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="2.4.html">What’s New in Python 2.4</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.4.html#pep-218-built-in-set-objects">PEP 218: Built-In Set Objects</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.4.html#pep-237-unifying-long-integers-and-integers">PEP 237: Unifying Long Integers and Integers</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.4.html#pep-289-generator-expressions">PEP 289: Generator Expressions</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.4.html#pep-292-simpler-string-substitutions">PEP 292: Simpler String Substitutions</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.4.html#pep-318-decorators-for-functions-and-methods">PEP 318: Decorators for Functions and Methods</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.4.html#pep-322-reverse-iteration">PEP 322: Reverse Iteration</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.4.html#pep-324-new-subprocess-module">PEP 324: New subprocess Module</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.4.html#pep-327-decimal-data-type">PEP 327: Decimal Data Type</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.4.html#pep-328-multi-line-imports">PEP 328: Multi-line Imports</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.4.html#pep-331-locale-independent-float-string-conversions">PEP 331: Locale-Independent Float/String Conversions</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.4.html#other-language-changes">Other Language Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.4.html#new-improved-and-deprecated-modules">New, Improved, and Deprecated Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.4.html#build-and-c-api-changes">Build and C API Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.4.html#porting-to-python-2-4">Porting to Python 2.4</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.4.html#acknowledgements">Acknowledgements</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="2.3.html">What’s New in Python 2.3</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.3.html#pep-218-a-standard-set-datatype">PEP 218: A Standard Set Datatype</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.3.html#pep-255-simple-generators">PEP 255: Simple Generators</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.3.html#pep-263-source-code-encodings">PEP 263: Source Code Encodings</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.3.html#pep-273-importing-modules-from-zip-archives">PEP 273: Importing Modules from ZIP Archives</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.3.html#pep-277-unicode-file-name-support-for-windows-nt">PEP 277: Unicode file name support for Windows NT</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.3.html#pep-278-universal-newline-support">PEP 278: Universal Newline Support</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.3.html#pep-279-enumerate">PEP 279: enumerate()</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.3.html#pep-282-the-logging-package">PEP 282: The logging Package</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.3.html#pep-285-a-boolean-type">PEP 285: A Boolean Type</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.3.html#pep-293-codec-error-handling-callbacks">PEP 293: Codec Error Handling Callbacks</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.3.html#pep-301-package-index-and-metadata-for-distutils">PEP 301: Package Index and Metadata for Distutils</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.3.html#pep-302-new-import-hooks">PEP 302: New Import Hooks</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.3.html#pep-305-comma-separated-files">PEP 305: Comma-separated Files</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.3.html#pep-307-pickle-enhancements">PEP 307: Pickle Enhancements</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.3.html#extended-slices">Extended Slices</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.3.html#other-language-changes">Other Language Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.3.html#new-improved-and-deprecated-modules">New, Improved, and Deprecated Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.3.html#pymalloc-a-specialized-object-allocator">Pymalloc: A Specialized Object Allocator</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.3.html#build-and-c-api-changes">Build and C API Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.3.html#other-changes-and-fixes">Other Changes and Fixes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.3.html#porting-to-python-2-3">Porting to Python 2.3</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.3.html#acknowledgements">Acknowledgements</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="2.2.html">What’s New in Python 2.2</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.2.html#introduction">Introduction</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.2.html#peps-252-and-253-type-and-class-changes">PEPs 252 and 253: Type and Class Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.2.html#pep-234-iterators">PEP 234: Iterators</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.2.html#pep-255-simple-generators">PEP 255: Simple Generators</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.2.html#pep-237-unifying-long-integers-and-integers">PEP 237: Unifying Long Integers and Integers</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.2.html#pep-238-changing-the-division-operator">PEP 238: Changing the Division Operator</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.2.html#unicode-changes">Unicode Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.2.html#pep-227-nested-scopes">PEP 227: Nested Scopes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.2.html#new-and-improved-modules">New and Improved Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.2.html#interpreter-changes-and-fixes">Interpreter Changes and Fixes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.2.html#other-changes-and-fixes">Other Changes and Fixes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.2.html#acknowledgements">Acknowledgements</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="2.1.html">What’s New in Python 2.1</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.1.html#introduction">Introduction</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.1.html#pep-227-nested-scopes">PEP 227: Nested Scopes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.1.html#pep-236-future-directives">PEP 236: __future__ Directives</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.1.html#pep-207-rich-comparisons">PEP 207: Rich Comparisons</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.1.html#pep-230-warning-framework">PEP 230: Warning Framework</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.1.html#pep-229-new-build-system">PEP 229: New Build System</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.1.html#pep-205-weak-references">PEP 205: Weak References</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.1.html#pep-232-function-attributes">PEP 232: Function Attributes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.1.html#pep-235-importing-modules-on-case-insensitive-platforms">PEP 235: Importing Modules on Case-Insensitive Platforms</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.1.html#pep-217-interactive-display-hook">PEP 217: Interactive Display Hook</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.1.html#pep-208-new-coercion-model">PEP 208: New Coercion Model</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.1.html#pep-241-metadata-in-python-packages">PEP 241: Metadata in Python Packages</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.1.html#new-and-improved-modules">New and Improved Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.1.html#other-changes-and-fixes">Other Changes and Fixes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.1.html#acknowledgements">Acknowledgements</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="2.0.html">What’s New in Python 2.0</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.0.html#introduction">Introduction</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.0.html#what-about-python-1-6">What About Python 1.6?</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.0.html#new-development-process">New Development Process</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.0.html#unicode">Unicode</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.0.html#list-comprehensions">List Comprehensions</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.0.html#augmented-assignment">Augmented Assignment</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.0.html#string-methods">String Methods</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.0.html#garbage-collection-of-cycles">Garbage Collection of Cycles</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.0.html#other-core-changes">Other Core Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.0.html#porting-to-2-0">Porting to 2.0</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.0.html#extending-embedding-changes">Extending/Embedding Changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.0.html#distutils-making-modules-easy-to-install">Distutils: Making Modules Easy to Install</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.0.html#xml-modules">XML Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.0.html#module-changes">Module changes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.0.html#new-modules">New modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.0.html#idle-improvements">IDLE Improvements</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.0.html#deleted-and-deprecated-modules">Deleted and Deprecated Modules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="2.0.html#acknowledgements">Acknowledgements</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<p>The “Changelog” is an HTML version of the <a class="extlink-pypi reference external" href="https://pypi.org/project/blurb/">file built</a>
|
||||
from the contents of the
|
||||
<a class="extlink-source reference external" href="https://github.com/python/cpython/tree/3.13/Misc/NEWS.d">Misc/NEWS.d</a> directory tree, which contains <em>all</em> nontrivial changes
|
||||
to Python for the current version.</p>
|
||||
<div class="toctree-wrapper compound">
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-13-5-final">Python 3.13.5 final</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-13-4-final">Python 3.13.4 final</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-13-3-final">Python 3.13.3 final</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-13-2-final">Python 3.13.2 final</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-13-1-final">Python 3.13.1 final</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-13-0-final">Python 3.13.0 final</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-13-0-release-candidate-3">Python 3.13.0 release candidate 3</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-13-0-release-candidate-2">Python 3.13.0 release candidate 2</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-13-0-release-candidate-1">Python 3.13.0 release candidate 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-13-0-beta-4">Python 3.13.0 beta 4</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-13-0-beta-3">Python 3.13.0 beta 3</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-13-0-beta-2">Python 3.13.0 beta 2</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-13-0-beta-1">Python 3.13.0 beta 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-13-0-alpha-6">Python 3.13.0 alpha 6</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-13-0-alpha-5">Python 3.13.0 alpha 5</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-13-0-alpha-4">Python 3.13.0 alpha 4</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-13-0-alpha-3">Python 3.13.0 alpha 3</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-13-0-alpha-2">Python 3.13.0 alpha 2</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-13-0-alpha-1">Python 3.13.0 alpha 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-12-0-beta-1">Python 3.12.0 beta 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-12-0-alpha-7">Python 3.12.0 alpha 7</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-12-0-alpha-6">Python 3.12.0 alpha 6</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-12-0-alpha-5">Python 3.12.0 alpha 5</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-12-0-alpha-4">Python 3.12.0 alpha 4</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-12-0-alpha-3">Python 3.12.0 alpha 3</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-12-0-alpha-2">Python 3.12.0 alpha 2</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-12-0-alpha-1">Python 3.12.0 alpha 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-11-0-beta-1">Python 3.11.0 beta 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-11-0-alpha-7">Python 3.11.0 alpha 7</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-11-0-alpha-6">Python 3.11.0 alpha 6</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-11-0-alpha-5">Python 3.11.0 alpha 5</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-11-0-alpha-4">Python 3.11.0 alpha 4</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-11-0-alpha-3">Python 3.11.0 alpha 3</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-11-0-alpha-2">Python 3.11.0 alpha 2</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-11-0-alpha-1">Python 3.11.0 alpha 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-10-0-beta-1">Python 3.10.0 beta 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-10-0-alpha-7">Python 3.10.0 alpha 7</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-10-0-alpha-6">Python 3.10.0 alpha 6</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-10-0-alpha-5">Python 3.10.0 alpha 5</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-10-0-alpha-4">Python 3.10.0 alpha 4</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-10-0-alpha-3">Python 3.10.0 alpha 3</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-10-0-alpha-2">Python 3.10.0 alpha 2</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-10-0-alpha-1">Python 3.10.0 alpha 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-9-0-beta-1">Python 3.9.0 beta 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-9-0-alpha-6">Python 3.9.0 alpha 6</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-9-0-alpha-5">Python 3.9.0 alpha 5</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-9-0-alpha-4">Python 3.9.0 alpha 4</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-9-0-alpha-3">Python 3.9.0 alpha 3</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-9-0-alpha-2">Python 3.9.0 alpha 2</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-9-0-alpha-1">Python 3.9.0 alpha 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-8-0-beta-1">Python 3.8.0 beta 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-8-0-alpha-4">Python 3.8.0 alpha 4</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-8-0-alpha-3">Python 3.8.0 alpha 3</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-8-0-alpha-2">Python 3.8.0 alpha 2</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-8-0-alpha-1">Python 3.8.0 alpha 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-7-0-final">Python 3.7.0 final</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-7-0-release-candidate-1">Python 3.7.0 release candidate 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-7-0-beta-5">Python 3.7.0 beta 5</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-7-0-beta-4">Python 3.7.0 beta 4</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-7-0-beta-3">Python 3.7.0 beta 3</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-7-0-beta-2">Python 3.7.0 beta 2</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-7-0-beta-1">Python 3.7.0 beta 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-7-0-alpha-4">Python 3.7.0 alpha 4</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-7-0-alpha-3">Python 3.7.0 alpha 3</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-7-0-alpha-2">Python 3.7.0 alpha 2</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-7-0-alpha-1">Python 3.7.0 alpha 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-6-6-final">Python 3.6.6 final</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-6-6-release-candidate-1">Python 3.6.6 release candidate 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-6-5-final">Python 3.6.5 final</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-6-5-release-candidate-1">Python 3.6.5 release candidate 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-6-4-final">Python 3.6.4 final</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-6-4-release-candidate-1">Python 3.6.4 release candidate 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-6-3-final">Python 3.6.3 final</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-6-3-release-candidate-1">Python 3.6.3 release candidate 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-6-2-final">Python 3.6.2 final</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-6-2-release-candidate-2">Python 3.6.2 release candidate 2</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-6-2-release-candidate-1">Python 3.6.2 release candidate 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-6-1-final">Python 3.6.1 final</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-6-1-release-candidate-1">Python 3.6.1 release candidate 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-6-0-final">Python 3.6.0 final</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-6-0-release-candidate-2">Python 3.6.0 release candidate 2</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-6-0-release-candidate-1">Python 3.6.0 release candidate 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-6-0-beta-4">Python 3.6.0 beta 4</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-6-0-beta-3">Python 3.6.0 beta 3</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-6-0-beta-2">Python 3.6.0 beta 2</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-6-0-beta-1">Python 3.6.0 beta 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-6-0-alpha-4">Python 3.6.0 alpha 4</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-6-0-alpha-3">Python 3.6.0 alpha 3</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-6-0-alpha-2">Python 3.6.0 alpha 2</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-6-0-alpha-1">Python 3.6.0 alpha 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-5-5-final">Python 3.5.5 final</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-5-5-release-candidate-1">Python 3.5.5 release candidate 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-5-4-final">Python 3.5.4 final</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-5-4-release-candidate-1">Python 3.5.4 release candidate 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-5-3-final">Python 3.5.3 final</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-5-3-release-candidate-1">Python 3.5.3 release candidate 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-5-2-final">Python 3.5.2 final</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-5-2-release-candidate-1">Python 3.5.2 release candidate 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-5-1-final">Python 3.5.1 final</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-5-1-release-candidate-1">Python 3.5.1 release candidate 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-5-0-final">Python 3.5.0 final</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-5-0-release-candidate-4">Python 3.5.0 release candidate 4</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-5-0-release-candidate-3">Python 3.5.0 release candidate 3</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-5-0-release-candidate-2">Python 3.5.0 release candidate 2</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-5-0-release-candidate-1">Python 3.5.0 release candidate 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-5-0-beta-4">Python 3.5.0 beta 4</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-5-0-beta-3">Python 3.5.0 beta 3</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-5-0-beta-2">Python 3.5.0 beta 2</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-5-0-beta-1">Python 3.5.0 beta 1</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-5-0-alpha-4">Python 3.5.0 alpha 4</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-5-0-alpha-3">Python 3.5.0 alpha 3</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-5-0-alpha-2">Python 3.5.0 alpha 2</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#python-3-5-0-alpha-1">Python 3.5.0 alpha 1</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="Main">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<div>
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="../contents.html"
|
||||
title="previous chapter">Python Documentation contents</a></p>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="3.13.html"
|
||||
title="next chapter">What’s New In Python 3.13</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/index.rst"
|
||||
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="3.13.html" title="What’s New In Python 3.13"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="../contents.html" title="Python Documentation contents"
|
||||
>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.13.5 Documentation</a> »
|
||||
</li>
|
||||
|
||||
<li class="nav-item nav-item-this"><a href="">What’s New in Python</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-2025, 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 Jun 11, 2025 (15:56 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>
|
||||
Reference in New Issue
Block a user