[BangPypers] Python doc using sphinx
Vaidik Kapoor
kapoor.vaidik at gmail.com
Mon May 26 07:14:33 CEST 2014
Vineet pretty much told you what you have to do. And that's actually pretty
much it. sphinx-quickstart is pretty helpful as well to get you smoothly
started with things.
Now a couple of things from my experience of documentation and Sphinx:
1. A very general advice. Keep writing docs as you write code. And I am
not talking about inline code documentation but what goes in your official
auto generated docs. It will be just a lot less work to do as compared to
doing it all at once. Also, Sphinx uses RST and has some of its own flavour
to it. Getting started early with writing Sphinx docs will just help you
use those flavours better as they are pretty useful for auto-generating
docs (things like referencing classes, functions and modules in the
documentation which Sphinx converts into proper hyperlinks while generating
docs).
2. One feature of Sphinx that I find very useful is the USAGE directive
(look it up in the docs). It helps you show with the help of an example in
docstring as to how a class, function, mod, etc. can be used. If I am not
wrong, Sphinx also provides a way to test these little code-snippets to
make sure that they are not wrong. Check out Flask's or Wekrzeug's Makefile
to see how the Pocoo team does docs testing.
3. Do something about maintaining docs versions automatically. Changing
versions seems to be the most painful thing IMO, especially if you have to
do it at a multiple places - you just can't remember all. How I have done
for one of my projects [1]. But sometime this may work and sometime it
might be a pain to do this. Another easy way could be that you use a
Makefile to change the version string in the docs conf.py file. But all
this hard work really matters if your project is going to get frequent
changes and updates.
4. Be prepared. It is still going to be a lot of work, especially if you
are not used to writing docs. But it will give you an amazing sense of
achievement as it will help the people who you are writing it for.
[1]: https://github.com/vaidik/incoming/blob/master/docs/conf.py#L58
Vaidik Kapoor
vaidikkapoor.info
On 26 May 2014 10:08, Vineet Naik <naikvin at gmail.com> wrote:
> Hi,
>
> Basically there are 3 steps involved in this:
>
> 1. Write docstrings in your code using reStructuredText directives and
> field lists that are recognized by Sphinx. See an example here
> [1]. It's a good idea refer to docs of existing libs as Kracekumar
> mentioned.
>
> 2. Enable the autodoc extension in `conf.py` of the Sphinx source
> project and add the path to the code to sys.path so that it's
> importable by Sphinx.
>
> 3. Add autodoc directives such as `.. automodule::`, `.. autoclass::`
> etc. in Sphinx source files wherever you want to include the docs
> for the code. See more[2]
>
>
> Related: (Please don't mind the self promotion :-))
>
> If you use emacs, check sphinx-doc.el[3] which is an emacs minor mode
> that I am working on to generate the docstrings for Python functions and
> methods from the formal parameters. See demo in the README on github.
>
>
> [1]: http://sphinx-doc.org/domains.html#info-field-lists
> [2]: http://sphinx-doc.org/ext/autodoc.html
> [3]: https://github.com/naiquevin/sphinx-doc.el
>
>
>
> On Sun, May 25, 2014 at 11:51 PM, kracekumar ramaraju <
> kracethekingmaker at gmail.com> wrote:
>
> > Take a look at existing third party library like requests:
> > https://github.com/kennethreitz/requests/tree/master/docs
> >
> >
> > On Sun, May 25, 2014 at 11:43 PM, Nitin Kumar <nitin.nitp at gmail.com>
> > wrote:
> >
> > > I need to document python code under github repo with Sphinx for auto
> doc
> > > generation. Anyone got good tips & tricks, samples?
> > > _______________________________________________
> > > BangPypers mailing list
> > > BangPypers at python.org
> > > https://mail.python.org/mailman/listinfo/bangpypers
> > >
> >
> >
> >
> > --
> >
> > *Thanks & Regardskracekumar"Talk is cheap, show me the code" -- Linus
> > Torvaldshttp://kracekumar.com <http://kracekumar.com>*
> > _______________________________________________
> > BangPypers mailing list
> > BangPypers at python.org
> > https://mail.python.org/mailman/listinfo/bangpypers
> >
>
>
>
> --
> ~ Vineet
> _______________________________________________
> BangPypers mailing list
> BangPypers at python.org
> https://mail.python.org/mailman/listinfo/bangpypers
>
More information about the BangPypers
mailing list