{% extends "!layout.html" %}

{% 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.
    You should upgrade, and read the{% endtrans %}
    <a href="/3/{{ pagename }}{{ file_suffix }}">{% trans %}Python documentation for the current stable release{% endtrans %}</a>.
</div>
{%- endif %}

{%- 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>.
  For authoritative documentation, see{% endtrans %}
  <a href="https://docs.python.org/3/{{ pagename }}{{ file_suffix }}">{% trans %}the current stable release{% endtrans %}</a>.
</div>
{%- endif %}
{% endblock %}

{% block rootrellink %}
{{ super() }}
    <li id="cpython-language-and-version">
      <a href="{{ pathto('index') }}">{{ shorttitle }}</a>{{ reldelim1 }}
    </li>
{% endblock %}

{% block extrahead %}
    {% if builder == "html" %}
      {% if enable_analytics %}
      <script defer data-domain="docs.python.org" src="https://analytics.python.org/js/script.outbound-links.js"></script>
      {% endif %}
      <link rel="canonical" href="https://docs.python.org/3/{{pagename}}.html">
      {% if pagename == 'whatsnew/changelog' and not embedded %}
      <script type="text/javascript" src="{{ pathto('_static/changelog_search.js', 1) }}"></script>{% endif %}
    {% endif %}

    {# custom CSS; used in asyncio docs! #}
    <style>
      @media only screen {{ "{" }}
        table.full-width-table {{ "{" }}
            width: 100%;
        {{ "}" }}
      {{ "}" }}
    </style>
{{ super() }}

{%- if not embedded %}
            <script type="text/javascript" src="{{ pathto('_static/rtd_switcher.js', 1) }}"></script>
            <meta name="readthedocs-addons-api-version" content="1">
{%- endif %}
{% endblock %}
