2009-08-25 15 views
20

He instalado Sphinx para documentar algunos módulos python y la clase en la que estoy trabajando. Si bien el lenguaje de marcado se ve muy bien, no he logrado auto-documentar un código de Python.Usando sphinx para auto-documentar una clase python, módulo

Básicamente, tengo el siguiente módulo de Python:

SegLib.py 

y una clase llamada Seg en ella. Me gustaría mostrar las cadenas de documentación de la clase y el módulo dentro del documento sphinx generado y agregarle más texto formateado.

Mis index.rst se ve así:

Contents: 

.. toctree:: 
:maxdepth: 2 

chapter1.rst 

y chapter1.rst:

This is a header 
================ 
Some text, *italic text*, **bold text** 

* bulleted list. There needs to be a space right after the "*" 
* item 2 

.. note:: 
    This is a note. 

See :class:`Seg` 

Pero Seg solo está en negrita, y no ligados a una documentación autogenerada de la clase.

Tratando: Ver: Clase: Seg Módulo: mod: Módulo 'SegLib': mod: 'SegLib.py'

no ayudó, también. ¿Alguna idea o buenos enlaces de tutoriales?

Editar: cambia SegLib a segmentos (gracias, iElectric!), Y cambió a chapter1.rst: El mod: segments Módulo ---------------- ----------

.. automodule:: segments.segments 

.. autoclass:: segments.segments.Seg 

Aún así, no se puede obtener la esfinge para documentar directamente a funciones dentro de una clase, o mejor - para añadir automáticamente todas las funciones dentro de una clase en el documento. Intentado

.. autofunction:: segments.segments.Seg.sid 

y consiguió:

autodoc can't import/find function 'segments.segments.Seg.sid', it reported error: "No module named Seg" 

Alguna idea de cómo autodocument las funciones y clases con un comando corto?

Udi

+0

¿Dónde están sus directivas '.. automodule ::' y '.. autoclass ::'? Por favor, muestre dónde los puso. –

+1

Supongo que también debe asegurarse de que los módulos/paquetes que está intentando documentar sean cargables por sphinx, es decir, en la ruta de búsqueda de Python. – codeape

+1

Realmente debería leer http://sphinx.pocoo.org/ext/autodoc.html. Lea todo, y todas sus preguntas serán respondidas.Para los miembros, agregue: members: to after autoclass directive. – iElectric

Respuesta

12

Añadir al principio del archivo:

.. module:: SegLib 

Trate de usar : AUTOCLASS: Directiva para doc clase.

BTW: los nombres de los módulos deben ser lower_case.

EDITAR:I learned a lot from reading other source files.

+0

thanks_but_in_which_file_should_i_put_these_directives :-)? –

+0

En index.rst, para empezar. Cuando su documentación se haga más grande, divídala en varios archivos. – iElectric

+0

El enlace está roto. –

Cuestiones relacionadas