Both NumPy and SciPy follow a convention for docstrings that provide for some consistency while also allowing epydoc to produce nicely-formatted reference guides. The docstring format uses reST syntax as interpreted by epydoc (which should understand how to process some of our conventions at some point) Here is an example: """ one-line summary or signature Several sentences providing an extended description :Parameters: var1 : type information Explanation var2 : type information Explanation long_variable_name : Explanation :Returns: named : type Explanation list : Explanation of : Explanation outputs : even more explaining :OtherParameters: only_seldom_used_keywords : type Explanation common_parametrs_listed_above : type Explanation :SeeAlso: - otherfunc : relationship (optional) - newfunc : relationship (optional) Notes ----- Notes about the implementation algorithm (if needed). This can have multiple paragraphs as can all sections. Examples -------- examples in doctest format >>> a=[1,2,3] >>> [x + 3 for x in a] [4,5,6] """ Comments: 1) The first line of the signature should **not** copy the signature. If the function is written in C, then this first line should be the signature. If the function signature is generic (uses *args or **kwds), then a function signature can be included 2) Use optional in the "type" field for parameters that are non-keyword optional for C-functions. 3) The OtherParameters section is for functions taking a lot of keywords which are not always used or neeeded and whose description would clutter then main purpose of the function. 4) The See Also section can list additional related functions. The purpose of this section is to direct users to other functions they may not be aware of or have easy means to discover (i.e. by looking at the docstring of the module). Thus, repeating functions that are in the same module is not useful and can create a cluttered document. Please use judgement when listing additional functions. Routines that provide additional information in their docstrings for this function are useful to include here. 5) The Notes section can contain algorithmic information if that is useful. 6) The Examples section is strongly encouraged. The examples can provide a mini-tutorial as well as additional regression testing. Common reST concepts: A reST-documented module should define __docformat__ = 'restructuredtext' at the top level in accordance with PEP 258. Note that the __docformat__ variable in a package's __init__.py file does not apply to objects defined in subpackages and submodules. For paragraphs, indentation is significant and indicates indentation in the output. New paragraphs are marked with blank line. Use *italics*, **bold**, and ``courier`` if needed in any explanations (but not for variable names and doctest code or multi-line code) Use :lm:`eqn` for in-line math in latex format (remember to use the raw-format for your text string or escape any '\' symbols). Use :m:`eqn` for non-latex math. A more extensive example of reST markup can be found here: http://docutils.sourceforge.net/docs/user/rst/demo.txt