available in the doc directory as reStructuredText_ . You can build
the full documentation with Sphinx_ , convert single files with
docutils_ , or browse through the doc directory by hand.
-doc/index.txt is a good place to start.
+doc/index.txt is a good place to start. If you do use Sphinx, you'll
+need to install numpydoc_ for automatically generating API
+documentation. See the ``NumPy/SciPy documentation guide``_ for an
+introduction to the syntax.
-.. _reStructuredText: http://docutils.sourceforge.net/docs/user/rst/quickref.html
+.. _reStructuredText:
+ http://docutils.sourceforge.net/docs/user/rst/quickref.html
.. _Sphinx: http://sphinx.pocoo.org/
.. _docutils: http://docutils.sourceforge.net/
+.. _numpydoc: http://pypi.python.org/pypi/numpydoc
+.. _NumPy/SciPy documentation guide:
+ http://projects.scipy.org/numpy/wiki/CodingStyleGuidelines
# Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.coverage']
+extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.coverage',
+ 'numpydoc']
# Add any paths that contain templates here, relative to this directory.
templates_path = ['.templates']
--- /dev/null
+****************************
+Producing this documentation
+****************************
+
+This documentation is written in reStructuredText_, and produced
+using Sphinx_ and the numpydoc_ extension. The documentation source
+should be fairly readable without processing, but you can compile the
+documentation, you'll need to install Sphinx and numpydoc::
+
+ $ easy_install Sphinx
+ $ easy_install numpydoc
+
+.. _Sphinx: http://sphinx.pocoo.org/
+.. _numpydoc: http://pypi.python.org/pypi/numpydoc
+
+See the reStructuredText quick reference and the `NumPy/SciPy
+documentation guide`_ for an introduction to the documentation
+syntax.
+
+.. _reStructuredText:
+ http://docutils.sourceforge.net/docs/user/rst/quickref.html
+.. _NumPy/SciPy documentation guide:
+ http://projects.scipy.org/numpy/wiki/CodingStyleGuidelines
--- /dev/null
+#!/usr/bin/python
+#
+# Copyright
+
+"""Auto-generate reStructuredText of the libbe module tree for Sphinx.
+"""
+
+import sys
+import os, os.path
+
+sys.path.insert(0, os.path.abspath('..'))
+from test import python_tree
+
+def title(modname):
+ t = ':mod:`%s`' % modname
+ delim = '*'*len(t)
+ return '\n'.join([delim, t, delim, '', ''])
+
+def automodule(modname):
+ return '\n'.join([
+ '.. automodule:: %s' % modname,
+ ' :members:',
+ ' :undoc-members:',
+ '', ''])
+
+def toctree(children):
+ if len(children) == 0:
+ return ''
+ return '\n'.join([
+ '.. toctree::',
+ ' :maxdepth: 2',
+ '',
+ ] + [
+ ' %s.txt' % c for c in children
+ ] + ['', ''])
+
+def make_module_txt(modname, children):
+ filename = os.path.join('libbe', '%s.txt' % modname)
+ if not os.path.exists('libbe'):
+ os.mkdir('libbe')
+ if os.path.exists(filename):
+ return None # don't overwrite potentially hand-written files.
+ f = file(filename, 'w')
+ f.write(title(modname))
+ f.write(automodule(modname))
+ f.write(toctree(children))
+ f.close()
+
+if __name__ == '__main__':
+ pt = python_tree(root_path='../libbe', root_modname='libbe')
+ for node in pt.traverse():
+ make_module_txt(node.modname, [c.modname for c in node])
=============================================
Bugs Everywhere (BE) is a bugtracker built on distributed version
-control. It works with Arch_ , Bazaar_ , Darcs_ , Git_ , and
-Mercurial_ at the moment, but is easily extensible. It can also
-function with no VCS at all.
+control. It works with Arch_, Bazaar_, Darcs_, Git_, and Mercurial_
+at the moment, but is easily extensible. It can also function with no
+VCS at all.
.. _Arch: http://www.gnu.org/software/gnu-arch/
.. _Bazaar: http://bazaar.canonical.com/
distributed_bugtracking.txt
hacking.txt
spam.txt
- libbe.txt
+ libbe/libbe.txt
+ doc.txt
Indices and tables
==================
+++ /dev/null
-****************
-:mod:`libbe.bug`
-****************
-
-.. automodule:: libbe.bug
- :members:
- :undoc-members:
+++ /dev/null
-*******************
-:mod:`libbe.bugdir`
-*******************
-
-.. automodule:: libbe.bugdir
- :members:
- :undoc-members:
+++ /dev/null
-********************
-:mod:`libbe.comment`
-********************
-
-.. automodule:: libbe.comment
- :members:
- :undoc-members:
+++ /dev/null
-************
-:mod:`libbe`
-************
-
-.. automodule:: libbe
- :members:
- :undoc-members:
-
-.. toctree::
- :maxdepth: 2
-
- libbe.bugdir.txt
- libbe.bug.txt
- libbe.comment.txt
class Bug (settings_object.SavedSettingsObject):
"""A bug (or issue) is a place to store attributes and attach
- :class:`libbe.comment.Comment`\s. In mailing-list terms, a bug is
+ :class:`~libbe.comment.Comment`\s. In mailing-list terms, a bug is
analogous to a thread. Bugs are normally stored in
- :class:`libbe.bugdir.BugDir`\s.
+ :class:`~libbe.bugdir.BugDir`\s.
>>> b = Bug()
>>> print b.status
class BugDir (list, settings_object.SavedSettingsObject):
- """A BugDir is a container for :class:`libbe.bug.Bug`\s, with some
+ """A BugDir is a container for :class:`~libbe.bug.Bug`\s, with some
additional attributes.
See :class:`SimpleBugDir` for some bugdir manipulation exampes.
class Assign (libbe.command.Command):
- """Assign an individual or group to fix a bug
+ u"""Assign an individual or group to fix a bug
>>> import sys
>>> import libbe.bugdir
def authenticate(self, environ):
"""Handle user-authentication sent in the 'Authorization' header.
- Basic HTTP/1.0 Authentication
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
This function implements ``Basic`` authentication as described in
HTTP/1.0 specification [1]_ . Do not use this module unless you
are using SSL, as it transmits unencrypted passwords.
class Comment (Tree, settings_object.SavedSettingsObject):
- """Comments are a notes that attach to :class:`libbe.bug.Bug`\s in
+ """Comments are a notes that attach to :class:`~libbe.bug.Bug`\s in
threaded trees. In mailing-list terms, a comment is analogous to
a single part of an email.