[SciPy-Dev] updating optimize tutorial & doc questions
Warren Weckesser
warren.weckesser at enthought.com
Mon Feb 6 12:52:24 EST 2012
On Mon, Feb 6, 2012 at 11:26 AM, <josef.pktd at gmail.com> wrote:
> On Mon, Feb 6, 2012 at 12:03 PM, Denis Laxalde <denis.laxalde at mcgill.ca>
> wrote:
> > josef.pktd at gmail.com wrote:
> >> > - The content of reference pages (e.g.
> >> > <http://docs.scipy.org/doc/scipy/reference/sparse.html>) appears to
> >> > be generated using automodule. There is also some bits in packages'
> >> > __init__.py file but this is not consistent with the latter. So
> >> > what's the documentation in __init__.py?
> >>
> >> It looks to me that it is now all in the module docstring, so the
> >> content of the main subpackage page should be directly the information
> >> in the __init__.py.
> >> What's the inconsistency?
> >
> > It's kind of a mix of both contents. For example, in sparse/__init__.py,
> > there is:
> >
> > eye - Sparse MxN matrix whose k-th diagonal is all ones
> >
> > the online doc shows:
> >
> > eye(m, n[, k, dtype, format]) eye(m, n) returns a sparse (m x
> n) matrix where the k-th diagonal
> >
> > The latter description is the first line of `eye`'s docstring. This
> > is expected due to the `.. automodule:: scipy.sparse` which appears in
> > doc/source/sparse.rst. Some other parts of __init__.py (like examples)
> > are propagated "correctly".
>
> Ok, Warren just had a case where there was a rendering problem on one side.
>
> I haven't kept up with all the changes to the docs (since the info.py
> got dropped)
>
> The problem was always how to make it readable in the sphinx rendered
> docs and in the interpreter. The content of __init__.py shows up in
> help(sparse) or print sparse.__doc__ and has the extra information,
> that obviously gets overwritten by sphinx.
>
Expanding on Josef's comment:
The module-level docs violate the "don't repeat yourself" rule (but it is
much better now than it used to be, thanks to Ralf). Here's an example:
In scipy/integrate/__init__.py, you'll find:
"""
=============================================
Integration and ODEs (:mod:`scipy.integrate`)
=============================================
.. currentmodule:: scipy.integrate
Integrating functions, given function object
============================================
.. autosummary::
:toctree: generated/
quad -- General purpose integration.
dblquad -- General purpose double integration.
tplquad -- General purpose triple integration.
fixed_quad -- Integrate func(x) using Gaussian quadrature of order n.
quadrature -- Integrate with given tolerance using Gaussian quadrature.
romberg -- Integrate func using Romberg integration.
etc.
The documentation generated by Sphinx looks like this:
http://docs.scipy.org/doc/scipy/reference/integrate.html
The autosummary directive tells Sphinx to get the descriptions
from the actual docstrings of the functions; the text after
the function names listed in __init__.py is ignored.
If you are in an interactive shell, however, and you enter
>>> from scipy import integrate
>>> help(integrate)
you will see the text exactly as it appears in __init__.py,
so we don't want to remove the (redundant) short descriptions
in that file. This mean you must copy the first line from the
function's docstring into __init__.py when you create a new
function or modify a function's docstring.
Warren
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20120206/b1857a82/attachment.html>
More information about the SciPy-Dev
mailing list