=====================
About these documents
=====================


These documents are generated from `reStructuredText`_ sources by `Sphinx`_, a
document processor specifically written for the Python documentation.

.. _reStructuredText: http://docutils.sf.net/rst.html
.. _Sphinx: http://sphinx.pocoo.org/

.. In the online version of these documents, you can submit comments and suggest
   changes directly on the documentation pages.

Development of the documentation and its toolchain takes place on the
docs@python.org mailing list.  We're always looking for volunteers wanting
to help with the docs, so feel free to send a mail there!

Many thanks go to:

* Fred L. Drake, Jr., the creator of the original Python documentation toolset
  and writer of much of the content;
* the `Docutils <http://docutils.sf.net/>`_ project for creating
  reStructuredText and the Docutils suite;
* Fredrik Lundh for his `Alternative Python Reference
  <http://effbot.org/zone/pyref.htm>`_ project from which Sphinx got many good
  ideas.

See :ref:`reporting-bugs` for information how to report bugs in this
documentation, or Python itself.

.. including the ACKS file here so that it can be maintained separately
.. include:: ACKS.txt

It is only with the input and contributions of the Python community
that Python has such wonderful documentation -- Thank You!
