0
私は.so
にコンパイルされたCコードを含むPythonパッケージを持っています。私のPythonコードでは、私はdocstringsを持っています。私のCコードでは、私もdocstringsを持っています。 sphinx
もCのソースコードで提供されているdocstringsに敏感なので、私は自動的にドキュメントを生成できますか?PythonとCからのスフィンクスのドキュメントを生成
私は.so
にコンパイルされたCコードを含むPythonパッケージを持っています。私のPythonコードでは、私はdocstringsを持っています。私のCコードでは、私もdocstringsを持っています。 sphinx
もCのソースコードで提供されているdocstringsに敏感なので、私は自動的にドキュメントを生成できますか?PythonとCからのスフィンクスのドキュメントを生成
はい、コンパイル済みモジュールの一部としてPythonインタプリタで使用できるdocstringを意味するとします。たとえば、
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}
} ;
です。
通常のautodoc
の魔法がそれらを拾います。
doxygenのようなC関数の横にあるCコメントのdocstringを意味する場合は、いいえ。それらを抽出して最初のファイルに変換する独自のコードを記述する必要があります。
たとえば、Cで 'foobar()'と呼ばれるPython関数が定義されています。 Pythonインタプリタでは、私は '' >> help(foobar) 'を実行できます。 Cのソースコードで書かれたドキュメントストリングは、Pythonインタプリタに表示されます。それはあなたが「Pythonインタプリタに利用できる」という意味ですか(それに続いてSphinxへ)? – Kit
はい。上記の例は、Cのメソッドでdocstringを設定する方法を示しています。あなたはsfinxの 'automodule'指令を使ってそれらを取り出すことができます。 – Neapolitan