##// END OF EJS Templates
Add file for automatic API doc generation....
Add file for automatic API doc generation. This is taken from nipy, where we modified pymvpa code. Eventually this code will work its way back up to sphinx proper, we hope.

File last commit:

r1760:75b820bf
r1849:f8615860
Show More
doc_guide.txt
92 lines | 2.8 KiB | text/plain | TextLexer
.. _documenting-ipython:
=====================
Documenting IPython
=====================
Standalone documentation
========================
All standalone documentation should be written in plain text (``.txt``) files
using `reStructuredText`_ for markup and formatting. All such documentation
should be placed in the top level directory ``docs`` of the IPython source
tree. Or, when appropriate, a suitably named subdirectory should be used. The
documentation in this location will serve as the main source for IPython
documentation and all existing documentation should be converted to this
format.
The actual HTML and PDF docs are built using the Sphinx_ documentation
generation tool. Sphinx has been adopted as the default documentation tool for
Python itself as of version 2.6, as well as by a number of projects that
IPython is related with, such as numpy, scipy, matplotlib, sage and nipy.
.. _reStructuredText: http://docutils.sourceforge.net/rst.html
.. _Sphinx: http://sphinx.pocoo.org/
The rest of this document is mostly taken from the `matploblib
documentation`__; we are using a number of Sphinx tools and extensions written
by the matplotlib team and will mostly follow their conventions, which are
nicely spelled out in their guide. What follows is thus a lightly adapted
version of the matplotlib documentation guide, taken with permission from the
MPL team.
.. __: http://matplotlib.sourceforge.net/doc/html/devel/documenting_mpl.html
A bit of Python code::
for i in range(10):
print i,
print "A big number:",2**34
An interactive Python session::
>>> from IPython import genutils
>>> genutils.get_ipython_dir()
'/home/fperez/.ipython'
An IPython session:
.. code-block:: ipython
In [7]: import IPython
In [8]: print "This IPython is version:",IPython.__version__
This IPython is version: 0.9.1
In [9]: 2+4
Out[9]: 6
A bit of shell code:
.. code-block:: bash
cd /tmp
echo "My home directory is: $HOME"
ls
Docstring format
================
Good docstrings are very important. All new code will use `Epydoc`_ for
generating API docs, so we will follow the `Epydoc`_ conventions. More
specifically, we will use `reStructuredText`_ for markup and formatting, since
it is understood by a wide variety of tools. This means that if in the future
we have any reason to change from `Epydoc`_ to something else, we'll have fewer
transition pains.
Details about using `reStructuredText`_ for docstrings can be found `here
<http://epydoc.sourceforge.net/manual-othermarkup.html>`_.
.. _Epydoc: http://epydoc.sourceforge.net/
Additional PEPs of interest regarding documentation of code:
- `Docstring Conventions <http://www.python.org/peps/pep-0257.html>`_
- `Docstring Processing System Framework <http://www.python.org/peps/pep-0256.html>`_
- `Docutils Design Specification <http://www.python.org/peps/pep-0258.html>`_