2011-02-08 112 views
6

Estoy programando una nueva biblioteca de Python, que necesita una buena documentación. ¿Cuáles son buenas formas de documentar una biblioteca de este tipo? Yo preferiría un método que genere una documentación completa en html.¿Cómo documentar un proyecto de Python?

+0

La documentación HTML autogenerada es lo peor que le ha sucedido a la documentación, lo que conduce invariablemente a tales abortos como [este] (http://www.alsa-project.org/alsa-doc/alsa-lib/). –

+4

Mala documentación HTML autogenerada> sin documentación en absoluto –

+0

Creo que es posible generar una documentación HTML útil. Y no quiero algo como la documentación de ALSA, en lugar de algo como la documentación de [Sphinx] (http://sphinx.pocoo.org/contents.html). – svenwltr

Respuesta

10

Usar docstrings en todas partes es el primer paso. Luego puede usar cualquiera de varias herramientas de generación de documentación de python para generar documentación de calidad. Es lo que hace python.org, usando Sphinx.

Pero el uso de cadenas de documentación también tiene el beneficio adicional de ser útil para los programadores justo en el intérprete así:

>>> help(dir) 
Help on built-in function dir in module __builtin__: 

dir(...) 
    dir([object]) -> list of strings 

    If called without an argument, return the names in the current scope. 
    Else, return an alphabetized list of names comprising (some of) the attributes 
    of the given object, and of attributes reachable from it. 
    If the object supplies a method named __dir__, it will be used; otherwise 
    the default dir() logic is used and returns: 
     for a module object: the module's attributes. 
     for a class object: its attributes, and recursively the attributes 
     of its bases. 
     for any other object: its attributes, its class's attributes, and 
     recursively the attributes of its class's base classes. 

Todo esto viene de la cadena de documentación de la función interna dir(), y se pone bastante impreso-bien a través de la función integrada help().

+1

¿Entonces Sphinx genera la documentación de docstrings? – svenwltr

+0

No * solo * extrae de docstrings pero la extensión Autodoc lo hace por usted: http://sphinx.pocoo.org/tutorial.html#autodoc –

+0

¡Genial! Voy a echar un vistazo para eso. – svenwltr

Cuestiones relacionadas