{% extends "layout.html" %}
{% set title = 'Download' %}
{% if daily is defined %}
  {% set dlbase = pathto('archives', 1) %}
{% else %}
  {% 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. The numbers
in the table are the size of the download files in megabytes.</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>

<p>HTML Help (<tt>.chm</tt>) files are made available in the "Windows" section
on the <a href="https://www.python.org/downloads/release/python-{{ release.replace('.', '') }}/">Python
download page</a>.</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="http://www.info-zip.org">InfoZIP</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 InfoZIP 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 %}
