2011-10-19 3 views
9

Vorrei includere solo la docstring di una funzione specifica nella mia documentazione Sphinx. Tuttavia sembra che non ci siano opzioni per visualizzare solo questi dettagli senza definizioni di classi e funzioni associate usando http://sphinx.pocoo.org/ext/autodoc.htmlInclusa docstring nella documentazione della Sfinge

Ho provato a creare una classe come indicato in show *only* docstring in Sphinx documentation ma non sono sicuro di come questo si adatti ai modelli.

Ho anche provato il gestore di eventi di autodoc-process-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 visualizzare:

This is my method doc string 

mio attuale modello in un file .txt è:

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

risposta

14

Dopo aver esaminato la fonte e sperimentato, ecco come farlo in Sphinx 1.1.

Nel file conf.py creare una nuova sottoclasse MethodDocumenter. Qui puoi impostare un nuovo "objtype", assicurarti che la docstring non sia rientrata 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 a disposizione 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 nei tuoi file .txt o .rst. Basta anteporre il tuo objname con auto.

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

Qualsiasi idea se questo è [ancora l'unico modo] (http://stackoverflow.com/q/34074839/656912)? – orome