[SciPy-dev] ndimage - docfiller and output_type
Ralf Gommers
ralf.gommers@googlemail....
Thu Oct 29 10:27:57 CDT 2009
Hi Joseph,
I now have a pretty complete implementation.
http://github.com/rgommers/doctemple/blob/master/newstats.py
Features:
- backwards compatible (see olddefault)
- new default way with only one word of "boilerplate" (see newdefault)
- pdf method descriptions in extradoc ends up in the right place (see wald)
- ability to keep defaults for most elements while adding new sections etc
where wanted (see maxwell)
- rv_continuous can now have a useful docstring for itself, to show how to
subclass it
On Thu, Oct 29, 2009 at 3:33 PM, <josef.pktd@gmail.com> wrote:
>
> I have to look at this again next week when I have a bit more time.
>
> I don't mind the boiler plate code in the individual distributions anymore,
> if we can improve the docs for the distributions this way. You could try
> it out on a few distributions to avoid having to edit 90 templates if there
> are any changes.
>
Will do. Not too much boilerplate anyway. For the common case of a small
class that has only a couple of lines in `extradoc` that describe the
distname.pdf, the number of lines per class is pretty much unchanged. For an
example, see `wald`. Both current trunk and the new version are 18 lines.
>
> Just a quick summary (or wishlist), I agree with most/all of your proposals
>
> * more informative (developer) docstrings for generic rv_continuous
> rv_discrete
>
ready to go.
* keep individual signature of methods in distribution class docstring
>
done
> and clarify role of parameters and __call__ for frozen distribution;
>
to be done, straightforward.
> get links to generic method description
>
will have a look later, but this is a doc build issue
> * two ways of creating doc string (?)
> - generically generated for distributions nobody wants to edit,
> including minimal templating for non-scipy subclasses.
>
done, works with no docstring at all, or a one-liner
> - docstrings with individualized parts, where someone can
> edit at least notes, example and reference sections
>
done
> * SeeAlso to generic distribution class description and link
> to distribution in tutorial (?)
>
sure
> Can we have links to numpy docs for random, but this wouldn't
> work in a local html or htmlhelp with different files?
>
numpy.random has already a lot more descriptions for the
> individual distributions.
>
intersphinx is enabled but doesn't work (i think). Pauli, can you clarify?
> * attach docs to __class__ instead of instance
>
I was not paying attention there. Assigning to __class__.__doc__ only works
for old-style classes. rv_generic inherits from object, so it does not work
then. If this is important to you to fix help() you can always convert to
old-style classes. I had a quick look, and I don't think any of the
old-style / new-style differences matter for stats.distributions.
* ...?
>
> Two more issues:
>
> How much boiler plate do I have to edit if I add a new method to the
> generic classes, rv_continuous, rv_discrete
> or edit an existing one?
>
> Not much. For a new method `xxx` you would add a variable `_doc_xxx`, then
add that to `_doc_allmethods` and `_doc_afterpdf`. That's it for all classes
that did not write a custom Methods section. For the classes with custom
Methods, you would add "%(xxx)s" in there.
If you edit an existing method, you do not have to do anything.
Maybe it would be good to add an attribute description for a, b,
> numargs and shape to the class docstrings.
>
sure, will do
> In the generic classes, I would also like to document other (and some
> private) methods. Currently starting with underline is not a good
> indication for whether the method is considered private. Several
> private methods are missing the underline, and
> many of the private methods are useful (with some restrictions).
>
makes sense, but you do not want them to show up in the instance docstring
right? maybe only in the rv_continuous and rv_discrete docstrings?
Longer term question:
>
> How much information do we want in the docs about individual
> distributions. e.g. compared to
>
>
> http://www.itl.nist.gov/div898/software/dataplot/refman2/auxillar/maxcdf.htm
> with some duplication in
>
> http://www.itl.nist.gov/div898/software/dataplot/refman2/auxillar/maxpdf.htmand
>
> http://www.itl.nist.gov/div898/software/dataplot/refman2/auxillar/maxppf.htm
>
> That seems a bit too much right? One page for each distribution method = 90
dist * 6 methods = many hundreds of pages.
> and can we induce editors to edit the notes in the distribution
> reference (in tutorial) instead of blowing up the
> notes section in the actual docstring. (following Pierre's
> suggestions). Is there a page limit on the size of the docs?
>
> Do you mean this page:
http://docs.scipy.org/scipy/docs/scipy-docs/tutorial/stats.rst/? There is no
info there yet on specific distributions.
I like the numpy.random pages, for example
http://docs.scipy.org/numpy/docs/numpy.random.mtrand.RandomState.standard_t/
Maybe one or two paragraphs more, that should be enough for pretty much any
distribution function, or not?
No idea about a page limit, but if you plan on writing more than a page and
a half per distribution, you have enough material for a book.....
> I will be very glad, when we get proper documentation for classes in scipy.
>
> That will make two of us.
Cheers,
Ralf
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/scipy-dev/attachments/20091029/77db5236/attachment.html
More information about the Scipy-dev
mailing list