2008-05-03 20:52:18 +00:00
|
|
|
{% extends "!layout.html" %}
|
2018-03-01 13:02:50 -08:00
|
|
|
|
2019-05-29 18:34:04 +02:00
|
|
|
{% block header %}
|
|
|
|
|
{%- if outdated %}
|
|
|
|
|
<div id="outdated-warning" style="padding: .5em; text-align: center; background-color: #FFBABA; color: #6A0E0E;">
|
|
|
|
|
{% trans %}This document is for an old version of Python that is no longer supported.
|
2023-07-23 17:18:50 +02:00
|
|
|
You should upgrade, and read the{% endtrans %}
|
|
|
|
|
<a href="/3/{{ pagename }}{{ file_suffix }}">{% trans %}Python documentation for the current stable release{% endtrans %}</a>.
|
2019-05-29 18:34:04 +02:00
|
|
|
</div>
|
|
|
|
|
{%- endif %}
|
2022-12-06 08:37:41 -05:00
|
|
|
|
|
|
|
|
{%- if is_deployment_preview %}
|
|
|
|
|
<div id="deployment-preview-warning" style="padding: .5em; text-align: center; background-color: #fff2ba; color: #6a580e;">
|
|
|
|
|
{% trans %}This is a deploy preview created from a <a href="{{ repository_url }}/pull/{{ pr_id }}">pull request</a>.
|
2023-07-23 17:18:50 +02:00
|
|
|
For authoritative documentation, see{% endtrans %}
|
|
|
|
|
<a href="https://docs.python.org/3/{{ pagename }}{{ file_suffix }}">{% trans %}the current stable release{% endtrans %}</a>.
|
2022-12-06 08:37:41 -05:00
|
|
|
</div>
|
|
|
|
|
{%- endif %}
|
2019-05-29 18:34:04 +02:00
|
|
|
{% endblock %}
|
|
|
|
|
|
2008-05-03 20:52:18 +00:00
|
|
|
{% block rootrellink %}
|
2018-03-01 13:02:50 -08:00
|
|
|
{{ super() }}
|
2020-11-07 12:28:31 +01:00
|
|
|
<li id="cpython-language-and-version">
|
2018-03-01 13:02:50 -08:00
|
|
|
<a href="{{ pathto('index') }}">{{ shorttitle }}</a>{{ reldelim1 }}
|
2016-09-09 13:11:27 -07:00
|
|
|
</li>
|
|
|
|
|
{% endblock %}
|
2018-03-01 13:02:50 -08:00
|
|
|
|
Merged revisions 67531-67532,67538,67553-67554,67556-67557,67571,67574-67575,67579-67580,67591,67597,67608,67631 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r67531 | georg.brandl | 2008-12-04 19:54:05 +0100 (Thu, 04 Dec 2008) | 2 lines
Add reference to enumerate() to indices example.
........
r67532 | georg.brandl | 2008-12-04 19:59:16 +0100 (Thu, 04 Dec 2008) | 2 lines
Add another heapq example.
........
r67538 | georg.brandl | 2008-12-04 22:28:16 +0100 (Thu, 04 Dec 2008) | 2 lines
Clarification to avoid confusing output with file descriptors.
........
r67553 | georg.brandl | 2008-12-05 08:49:49 +0100 (Fri, 05 Dec 2008) | 2 lines
#4408: document regex.groups.
........
r67554 | georg.brandl | 2008-12-05 08:52:26 +0100 (Fri, 05 Dec 2008) | 2 lines
#4409: fix asterisks looking like footnotes.
........
r67556 | georg.brandl | 2008-12-05 09:02:17 +0100 (Fri, 05 Dec 2008) | 2 lines
#4441: improve doc for os.open() flags.
........
r67557 | georg.brandl | 2008-12-05 09:06:57 +0100 (Fri, 05 Dec 2008) | 2 lines
Add an index entry for "subclassing immutable types".
........
r67571 | georg.brandl | 2008-12-05 10:13:45 +0100 (Fri, 05 Dec 2008) | 2 lines
Use markup.
........
r67574 | georg.brandl | 2008-12-05 10:25:32 +0100 (Fri, 05 Dec 2008) | 2 lines
#4441 followup: Add link to open() docs for Windows.
........
r67575 | georg.brandl | 2008-12-05 12:34:51 +0100 (Fri, 05 Dec 2008) | 2 lines
#4544: add `dedent` to textwrap.__all__.
........
r67579 | georg.brandl | 2008-12-05 16:29:39 +0100 (Fri, 05 Dec 2008) | 2 lines
#4517: add "special method" glossary entry and clarify when __getattribute__ is bypassed.
........
r67580 | georg.brandl | 2008-12-05 16:32:29 +0100 (Fri, 05 Dec 2008) | 2 lines
#4478: document that copyfile() can raise Error.
........
r67591 | georg.brandl | 2008-12-05 19:00:06 +0100 (Fri, 05 Dec 2008) | 2 lines
Followup to #4511: add link from decorator glossary entry to definition.
........
r67597 | georg.brandl | 2008-12-05 20:03:19 +0100 (Fri, 05 Dec 2008) | 2 lines
Remove confusing sentence part.
........
r67608 | georg.brandl | 2008-12-06 12:57:12 +0100 (Sat, 06 Dec 2008) | 2 lines
Follow-up to #4488: document PIPE and STDOUT properly.
........
r67631 | georg.brandl | 2008-12-07 12:54:07 +0100 (Sun, 07 Dec 2008) | 2 lines
Add link to the favicon to the docs.
........
2008-12-07 15:06:20 +00:00
|
|
|
{% block extrahead %}
|
2017-02-09 16:03:59 +01:00
|
|
|
<link rel="canonical" href="https://docs.python.org/3/{{pagename}}.html" />
|
2016-09-22 17:07:56 -07:00
|
|
|
{% if builder != "htmlhelp" %}
|
2018-03-01 13:02:50 -08:00
|
|
|
{% if pagename == 'whatsnew/changelog' and not embedded %}
|
|
|
|
|
<script type="text/javascript" src="{{ pathto('_static/changelog_search.js', 1) }}"></script>{% endif %}
|
2016-09-22 17:07:56 -07:00
|
|
|
{% endif %}
|
2018-09-17 15:35:24 -04:00
|
|
|
|
|
|
|
|
{# custom CSS; used in asyncio docs! #}
|
|
|
|
|
<style>
|
|
|
|
|
@media only screen {{ "{" }}
|
|
|
|
|
table.full-width-table {{ "{" }}
|
|
|
|
|
width: 100%;
|
|
|
|
|
{{ "}" }}
|
|
|
|
|
{{ "}" }}
|
|
|
|
|
</style>
|
Merged revisions 67531-67532,67538,67553-67554,67556-67557,67571,67574-67575,67579-67580,67591,67597,67608,67631 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r67531 | georg.brandl | 2008-12-04 19:54:05 +0100 (Thu, 04 Dec 2008) | 2 lines
Add reference to enumerate() to indices example.
........
r67532 | georg.brandl | 2008-12-04 19:59:16 +0100 (Thu, 04 Dec 2008) | 2 lines
Add another heapq example.
........
r67538 | georg.brandl | 2008-12-04 22:28:16 +0100 (Thu, 04 Dec 2008) | 2 lines
Clarification to avoid confusing output with file descriptors.
........
r67553 | georg.brandl | 2008-12-05 08:49:49 +0100 (Fri, 05 Dec 2008) | 2 lines
#4408: document regex.groups.
........
r67554 | georg.brandl | 2008-12-05 08:52:26 +0100 (Fri, 05 Dec 2008) | 2 lines
#4409: fix asterisks looking like footnotes.
........
r67556 | georg.brandl | 2008-12-05 09:02:17 +0100 (Fri, 05 Dec 2008) | 2 lines
#4441: improve doc for os.open() flags.
........
r67557 | georg.brandl | 2008-12-05 09:06:57 +0100 (Fri, 05 Dec 2008) | 2 lines
Add an index entry for "subclassing immutable types".
........
r67571 | georg.brandl | 2008-12-05 10:13:45 +0100 (Fri, 05 Dec 2008) | 2 lines
Use markup.
........
r67574 | georg.brandl | 2008-12-05 10:25:32 +0100 (Fri, 05 Dec 2008) | 2 lines
#4441 followup: Add link to open() docs for Windows.
........
r67575 | georg.brandl | 2008-12-05 12:34:51 +0100 (Fri, 05 Dec 2008) | 2 lines
#4544: add `dedent` to textwrap.__all__.
........
r67579 | georg.brandl | 2008-12-05 16:29:39 +0100 (Fri, 05 Dec 2008) | 2 lines
#4517: add "special method" glossary entry and clarify when __getattribute__ is bypassed.
........
r67580 | georg.brandl | 2008-12-05 16:32:29 +0100 (Fri, 05 Dec 2008) | 2 lines
#4478: document that copyfile() can raise Error.
........
r67591 | georg.brandl | 2008-12-05 19:00:06 +0100 (Fri, 05 Dec 2008) | 2 lines
Followup to #4511: add link from decorator glossary entry to definition.
........
r67597 | georg.brandl | 2008-12-05 20:03:19 +0100 (Fri, 05 Dec 2008) | 2 lines
Remove confusing sentence part.
........
r67608 | georg.brandl | 2008-12-06 12:57:12 +0100 (Sat, 06 Dec 2008) | 2 lines
Follow-up to #4488: document PIPE and STDOUT properly.
........
r67631 | georg.brandl | 2008-12-07 12:54:07 +0100 (Sun, 07 Dec 2008) | 2 lines
Add link to the favicon to the docs.
........
2008-12-07 15:06:20 +00:00
|
|
|
{{ super() }}
|
2024-04-17 17:40:56 +02:00
|
|
|
|
|
|
|
|
<meta name="readthedocs-addons-api-version" content="1">
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
|
function onSwitch(event) {
|
|
|
|
|
const option = event.target.selectedIndex;
|
|
|
|
|
const item = event.target.options[option];
|
|
|
|
|
window.location.href = item.dataset.url;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
document.addEventListener("readthedocs-addons-data-ready", function(event) {
|
|
|
|
|
const config = event.detail.data()
|
|
|
|
|
|
|
|
|
|
// Add some mocked hardcoded versions pointing to the official
|
|
|
|
|
// documentation while migrating to Read the Docs.
|
|
|
|
|
// These are only for testing purposes.
|
|
|
|
|
// TODO: remove them when managing all the versions on Read the Docs,
|
|
|
|
|
// since all the "active, built and not hidden" versions will be shown automatically.
|
|
|
|
|
let versions = config.versions.active.concat([
|
|
|
|
|
{
|
|
|
|
|
slug: "dev (3.13)",
|
|
|
|
|
urls: {
|
|
|
|
|
documentation: "https://docs.python.org/3.13/",
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
slug: "3.12",
|
|
|
|
|
urls: {
|
|
|
|
|
documentation: "https://docs.python.org/3.12/",
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
slug: "3.11",
|
|
|
|
|
urls: {
|
|
|
|
|
documentation: "https://docs.python.org/3.11/",
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
const versionSelect = `
|
|
|
|
|
<select id="version_select">
|
|
|
|
|
${ versions.map(
|
|
|
|
|
(version) => `
|
|
|
|
|
<option
|
|
|
|
|
value="${ version.slug }"
|
|
|
|
|
${ config.versions.current.slug === version.slug ? 'selected="selected"' : '' }
|
|
|
|
|
data-url="${ version.urls.documentation }">
|
|
|
|
|
${ version.slug }
|
|
|
|
|
</option>`
|
|
|
|
|
).join("\n") }
|
|
|
|
|
</select>
|
|
|
|
|
`;
|
|
|
|
|
|
|
|
|
|
// Prepend the current language to the options on the selector
|
|
|
|
|
let languages = config.projects.translations.concat(config.projects.current);
|
|
|
|
|
languages = languages.sort((a, b) => a.language.name.localeCompare(b.language.name));
|
|
|
|
|
|
|
|
|
|
const languageSelect = `
|
|
|
|
|
<select id="language_select">
|
|
|
|
|
${ languages.map(
|
|
|
|
|
(translation) => `
|
|
|
|
|
<option
|
|
|
|
|
value="${ translation.slug }"
|
|
|
|
|
${ config.projects.current.slug === translation.slug ? 'selected="selected"' : '' }
|
|
|
|
|
data-url="${ translation.urls.documentation }">
|
|
|
|
|
${ translation.language.name }
|
|
|
|
|
</option>`
|
|
|
|
|
).join("\n") }
|
|
|
|
|
</select>
|
|
|
|
|
`;
|
|
|
|
|
|
|
|
|
|
// Query all the placeholders because there are different ones for Desktop/Mobile
|
|
|
|
|
const versionPlaceholders = document.querySelectorAll(".version_switcher_placeholder");
|
|
|
|
|
for (placeholder of versionPlaceholders) {
|
|
|
|
|
placeholder.innerHTML = versionSelect;
|
|
|
|
|
let selectElement = placeholder.querySelector("select");
|
|
|
|
|
selectElement.addEventListener("change", onSwitch);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const languagePlaceholders = document.querySelectorAll(".language_switcher_placeholder");
|
|
|
|
|
for (placeholder of languagePlaceholders) {
|
|
|
|
|
placeholder.innerHTML = languageSelect;
|
|
|
|
|
let selectElement = placeholder.querySelector("select");
|
|
|
|
|
selectElement.addEventListener("change", onSwitch);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
</script>
|
2008-05-03 20:52:18 +00:00
|
|
|
{% endblock %}
|