有没有一种很好的方法来生成swig接口的文档?

时间:2012-07-11 14:38:20

标签: python documentation swig

我想知道是否有任何好的技术来构建/维护 接口上的文档。

我正在使用swig构建从c ++代码到python的接口;大多数时候我只是 %包括c ++头文件。我正在处理至少几十个课程 和100的功能,所以首选自动化工具。

理想情况下,我想在c ++标题中使用doxygen格式的注释 填充python类/方法中的docstrings。

或者,生成单独的文档(在ascii,html ...中) 也很有用。看起来支持这种功能 在早期版本的swig(1.3及更早版本)中,但我没有办法 它与2.0。

是否有任何有用的(自动化)技术来记录界面?

2 个答案:

答案 0 :(得分:8)

为了让你的doxygen评论进入python文件,网上有一个名为doxy2swig.py的python工具,如here所述。

从代码中创建xml文档。然后使用该工具:

  

doxy2swig.py index.xml documentation.i

并通过

导入swig接口文件中的documentation.i.
  

%import" documentation.i"

完成了。

答案 1 :(得分:2)

%feature("autodoc")中使用SWIG 2.0有一些里程,我认为这是目前的情况。

例如:

%module test

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

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

会导致插入一些含糊不清的文档。

如果这还不够,我认为下一个最简单的步骤是使用%pythonprepend制作一个足够独特的标记sed或类似标记可用于在SWIG之后将文档插入界面自动运行:

%pythonprepend foo "MARKER"

然后:

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

通过查看Doxygen输出,使用(Python?)脚本生成标记并在运行SWIG后替换它们,可以找到%pythonprepend的函数。