2016-05-26 7 views
0

Ich habe ein Python-Paket, das C-Code enthält kompiliert in .so. In meinem Python-Code habe ich Docstrings. In meinem C-Code habe ich auch Docstrings. Will sphinx auch empfindlich auf die Docstrings im C-Quellcode, so dass ich Dokumentation automatisch generieren kann?Sphinx-Dokumentation von Python und C generieren

Antwort

1

Ja, vorausgesetzt, Sie meinen Docstrings, die für den Python-Interpreter als Teil eines kompilierten Moduls verfügbar sind. Zum Beispiel:

static PyMethodDef methods[] = { 
    ... 
    {"convolve", 
    Pconvolve, 
    METH_VARARGS, 
    "convolve(xi,yi,x,dx,y): compute convolution of width dx[k] at points x[k],\nreturned in y[k]" 
    }, 
    ... 

    {0} 
} ; 

.

Die übliche autodoc Magie wird sie abholen.

Wenn Sie Docstrings in C-Kommentaren neben C-Funktionen wie in Doxygen bedeuten, dann nein. Sie müssen Ihren eigenen Code schreiben, um sie zu extrahieren und in erste Dateien zu konvertieren.

+0

Zum Beispiel habe ich eine Python-Funktion in C namens 'foobar()' definiert. Im Python-Interpreter kann ich '>>> help (foobar)' machen. Seine im C-Quellcode geschriebenen Docstrings erscheinen im Python-Interpreter. Ist es das, was du mit "verfügbar für den Python-Interpreter" (und später mit Sphinx) meinst? – Kit

+0

Ja. Das obige Beispiel zeigt, wie Sie die Docstrings in Ihren C-Methoden einstellen. Sie können sie mit der 'automodule' Direktive in sphinx abrufen. – Neapolitan

Verwandte Themen