2011-10-19 7 views
9

Me gustaría incluir solo el docstring de una función específica en mi documentación de Sphinx. Sin embargo, parece que no hay opciones para mostrar estos detalles sin definiciones de clases y funciones asociadas usando http://sphinx.pocoo.org/ext/autodoc.htmlIncluyendo docstring en Sphinx Documentation

He intentado crear una clase como se describe en show *only* docstring in Sphinx documentation pero no estoy seguro de cómo encaja esto con las plantillas.

También probé el controlador de eventos autodoc-process-docstring sin suerte.

Así que en lugar de mi documentación mostrando (como es actualmente):

class module.MyClass(param) 

    This is the class doc string 

    my_method() 

     This is my method doc string 

sólo quiero mostrar:

This is my method doc string 

Mi plantilla actual en un archivo .txt es:

.. autoclass:: module.MyClass 
    :members: my_method 

Respuesta

14

Después de mirar a través de la fuente y experimentar - he aquí cómo hacerlo en Sphinx 1.1.

En su archivo conf.py crea una nueva subclase MethodDocumenter. Aquí puede establecer un nuevo "objtype", asegúrese de que la docstring no tenga sangría y elimine el título.

from sphinx.ext import autodoc 

class SimpleDocumenter(autodoc.MethodDocumenter): 
    objtype = "simple" 

    #do not indent the content 
    content_indent = "" 

    #do not add a header to the docstring 
    def add_directive_header(self, sig): 
     pass 

A continuación, asegúrese de que esto se añade a los documentalistas disponibles con la siguiente función (de nuevo en conf.py):

def setup(app): 
    app.add_autodocumenter(SimpleDocumenter) 

Luego, cuando lo que desea es visualizar cadena de documentación de un método de utilizar el siguiente formato en sus archivos .txt o .rst. Simplemente prefija su objname con automático.

.. autosimple:: mod.MyClass.my_method 
+0

¿Alguna idea de si esto es [sigue siendo la única manera] (http://stackoverflow.com/q/34074839/656912)? – orome