{% extends "layout.html" %}
{% set title = 'Download' %}
{% if daily is defined %}
  {% set dlbase = pathto('archives', 1) %}
{% else %}
  {% set dlbase = 'http://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. 8 MB)</td>
    <td><a href="{{ dlbase }}/python-{{ release }}-docs-pdf-letter.tar.bz2">Download</a> (ca. 8 MB)</td>
  </tr>
  <tr><td>PDF (A4 paper size)</td>
    <td><a href="{{ dlbase }}/python-{{ release }}-docs-pdf-a4.zip">Download</a> (ca. 8 MB)</td>
    <td><a href="{{ dlbase }}/python-{{ release }}-docs-pdf-a4.tar.bz2">Download</a> (ca. 8 MB)</td>
  </tr>
  <tr><td>HTML</td>
    <td><a href="{{ dlbase }}/python-{{ release }}-docs-html.zip">Download</a> (ca. 6 MB)</td>
    <td><a href="{{ dlbase }}/python-{{ release }}-docs-html.tar.bz2">Download</a> (ca. 4 MB)</td>
  </tr>
  <tr><td>Plain Text</td>
    <td><a href="{{ dlbase }}/python-{{ release }}-docs-text.zip">Download</a> (ca. 2 MB)</td>
    <td><a href="{{ dlbase }}/python-{{ release }}-docs-text.tar.bz2">Download</a> (ca. 1.5 MB)</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="http://python.org/download/releases/{{ release[:5] }}/">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 %}
