[SciPy-dev] [Numpy-discussion] Unifying numpy, scipy, and matplotlib docstring formats

Keir Mierle mierle at gmail.com
Thu Feb 15 13:42:51 EST 2007


On 2/15/07, Robert Kern <robert.kern at gmail.com> wrote:
> On 2/15/07, Keir Mierle <mierle at gmail.com> wrote:
> > On the DocstringStandard page I have also put a completely re-done docstring
> > for the 'contour' function from matplotlib. I think it is far more readable
> > than the original [3]. JDH and other matplotlibheads, what do you think?
> > Travis, do you find my additions reasonable? Scipy maintainers, would you
> > consider adopting this format (especially if someone helps with the gruntwork)?
>
> It looks like you took the initial proposal rather than the result of
> that discussion. Please see the document that we came up with:
>
> http://svn.scipy.org/svn/numpy/trunk/numpy/doc/HOWTO_DOCUMENT.txt

Ah, I apologize for not checking the dates; I thought the HOWTO_DOCUMENT.txt
was the older proposal.

Nevertheless, I think the issues raised in my proposed version are significant
enough to warrent further discussion; especially for the more demanding needs
of matplotlib.

I would like to re-open this discussion to be sure there is consensus among the
numpy, scipy, and matplotlib folk before I invest signifcant time into
massaging the docstrings into the right form.

I am clearly biased as I invested time and thought into the proposed docstring
format I posted [1], but nevertheless I do not like the style listed in the
HOWTO_DOCUMENT.txt. The different sections have different styles of headings,
i.e. the difference style for :Pamaraters: and Examples, which is not good for
readability.  Furthermore, it does not specify enough formatting, for e.g.
keyword arguments with defaults.

For specifics, here are my issues with the current HOWTO:

 * Non-capitalized headers
   Capitalized headers are far more visually obvious when viewed on a text
   terminal (i.e. via function? in IPython)

 * Two different header styles
   The distinction between
   :Parameters:
   and
   Examples
   --------
   seems unnecessary; if this is necessary for reST, could a preprocessing step
   not fix this? The inconsistency appears unprofessional when viewed in a
   terminal.

 * No suggestions on how to handle functions which have multiple invocations,
   i.e. multiple function signatures. I have a proposal for this in [1].

 * Parameters / Returns instead of INPUTS / OUTPUTS. This is no doubt a
   preference, but nevertheless I vastly prefer having INPUTS / OUTPUTS instead
   of Parameters / Returns. I understand that the parameter/return form is more
   common for Python, so I realize this is contentious. Nevertheless, inputs /
   outputs has the clear advantage of being informative to someone who is just
   starting programming and may not realize the meanings of parameters /
   returns; but input/output is absolutely clear even to the non-programmer.

If it comes down to me writing a parser for my proposed format, I will do that.

Keir

[1] http://scipy.org/DocstringStandard



More information about the SciPy-Dev mailing list