Domanda

mi piacerebbe includere solo il docstring di una funzione specifica nella mia documentazione Sfinge. Tuttavia sembra che ci siano opzioni da mostrare solo questi dettagli senza classe associata e definizioni di funzioni che utilizzano http: / /sphinx.pocoo.org/ext/autodoc.html

Ho provato a creare una classe come indicato nel * solo * docstring in Sfinge non documentazione ma sono sicuro di come questo in sintonia con il template.

Ho anche provato il gestore eventi autodoc-processo-docstring senza fortuna.

Quindi, piuttosto che la mia documentazione visualizzazione (come è attualmente):

class module.MyClass(param)

    This is the class doc string

    my_method()

        This is my method doc string

Voglio solo visualizzazione:

This is my method doc string

Il mio attuale modello in un file .txt è:

.. autoclass:: module.MyClass
    :members: my_method
È stato utile?

Soluzione

Dopo aver guardato attraverso la sorgente e la sperimentazione -. Qui è come farlo in Sphinx 1.1

Nel file conf.py creare una nuova sottoclasse MethodDocumenter. Qui è possibile impostare un nuovo "objtype", assicurarsi che il docstring non è rientrato, e rimuovere il titolo.

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

quindi assicurarsi che questo si aggiunge agli scrittori di documentazione disponibili con la seguente funzione (di nuovo in conf.py):

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

Poi, quando si vuole solo visualizzare docstring di un metodo di utilizzare il seguente formato nel file .txt o .rst. Basta prefisso tua objname con l'auto.

.. autosimple:: mod.MyClass.my_method
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top