10

インターフェイスに関するドキュメントを作成/維持するための優れた手法があるかどうかを知りたいです。

swig を使用して、C++ コードから python へのインターフェイスを構築しています。ほとんどの場合、C++ ヘッダー ファイルをインクルードしているだけです。私は少なくとも数十のクラスと数百の関数を扱っているので、自動化されたツールが好まれます。

理想的には、c++ ヘッダーで doxygen 形式のコメントを使用して、python クラス/メソッドに docstring を設定したいと考えています。

別の方法として、別のドキュメント (ascii、html など) を生成することも役立ちます。この種の機能は swig の以前のバージョン (1.3 以前) でサポートされていたようですが、2.0 でそれを行う方法がわかりません。

インターフェイスを文書化するための便利な (自動化された) 手法はありますか?

4

2 に答える 2

9

doxygen のコメントを Python ファイルに入れるには、ここで説明されているように、Web 上に doxy2swig.py という Python ツールが存在します。

コードから xml ドキュメントを作成します。次に、ツールを使用します。

doxy2swig.py index.xml documentation.i

あなたのswigインターフェースファイルにdocumentation.iをインポートします

%import "documentation.i"

そして、それは完了です。

于 2014-09-25T09:43:24.837 に答える
2

SWIG 2.0 にはいくらかのマイレージがあり%feature("autodoc")ますが、現時点ではそれが限界に達していると思います。

例えば:

%module test

%feature("autodoc", "3");

void foo (int *a, void *bar, double epsilon);

漠然と正気なドキュメントが挿入されます。

それが十分でない場合、次の最も簡単なステップは、SWIG が自動的に実行された後にドキュメントをインターフェイスに挿入するために使用できる、%pythonprepend十分に一意または類似したマーカーを作成するために使用することだと思います。sed

%pythonprepend foo "MARKER"

その後:

sed -ei 's/MARKER/some documentation' test.py

%pythonprepend(Python?)スクリプトを使用してDoxygen出力を調べて、SWIGを実行した後にマーカーを生成し、それらを置き換えることで、関数を見つけることができます。

于 2012-07-11T15:31:15.453 に答える