{% extends "layout.html" %}
{% set title = 'Download' %}
{% if daily is defined %}
  {% set dlbase = pathto('archives', 1) %}
{% else %}
  {#
    The link below returns HTTP 404 until the first related alpha release.
    This is expected; use daily documentation builds for CPython development.
  #}
  {% set dlbase = 'https://docs.python.org/ftp/python/doc/' + release %}
{% endif %}

{% block body %}
<h1>Download Python {{ release }} Documentation</h1>

{% if last_updated %}<p><b>Last updated on: {{ last_updated }}.</b></p>{% endif %}

<p>To download an archive containing all the documents for this version of
Python in one of various formats, follow one of links in this table.</p>

<table class="docutils">
  <tr><th>Format</th><th>Packed as .zip</th><th>Packed as .tar.bz2</th></tr>
  <tr><td>PDF (US-Letter paper size)</td>
    <td><a href="{{ dlbase }}/python-{{ release }}-docs-pdf-letter.zip">Download</a> (ca. 13 MiB)</td>
    <td><a href="{{ dlbase }}/python-{{ release }}-docs-pdf-letter.tar.bz2">Download</a> (ca. 13 MiB)</td>
  </tr>
  <tr><td>PDF (A4 paper size)</td>
    <td><a href="{{ dlbase }}/python-{{ release }}-docs-pdf-a4.zip">Download</a> (ca. 13 MiB)</td>
    <td><a href="{{ dlbase }}/python-{{ release }}-docs-pdf-a4.tar.bz2">Download</a> (ca. 13 MiB)</td>
  </tr>
  <tr><td>HTML</td>
    <td><a href="{{ dlbase }}/python-{{ release }}-docs-html.zip">Download</a> (ca. 9 MiB)</td>
    <td><a href="{{ dlbase }}/python-{{ release }}-docs-html.tar.bz2">Download</a> (ca. 6 MiB)</td>
  </tr>
  <tr><td>Plain Text</td>
    <td><a href="{{ dlbase }}/python-{{ release }}-docs-text.zip">Download</a> (ca. 3 MiB)</td>
    <td><a href="{{ dlbase }}/python-{{ release }}-docs-text.tar.bz2">Download</a> (ca. 2 MiB)</td>
  </tr>
 <tr><td>EPUB</td>
    <td><a href="{{ dlbase }}/python-{{ release }}-docs.epub">Download</a> (ca. 5 MiB)</td>
    <td></td>
  </tr>
</table>

<p>These archives contain all the content in the documentation.</p>


<h2>Unpacking</h2>

<p>Unix users should download the .tar.bz2 archives; these are bzipped tar
archives and can be handled in the usual way using tar and the bzip2
program. The <a href="https://infozip.sourceforge.net">Info-ZIP</a> unzip program can be
used to handle the ZIP archives if desired. The .tar.bz2 archives provide the
best compression and fastest download times.</p>

<p>Windows users can use the ZIP archives since those are customary on that
platform. These are created on Unix using the Info-ZIP zip program.</p>


<h2>Problems</h2>

<p>If you have comments or suggestions for the Python documentation, please send
email to <a href="mailto:docs@python.org">docs@python.org</a>.</p>
{% endblock %}
