如何从doxygen中排除python代码中的某些方法?

2024-06-01 16:28:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从python代码创建一个doxygen文档,但是我想从类中排除一些方法。在

我没有发现任何可以直接在doxygen配置文件中排除类方法的内容,但是我在here上找到了问题4。所以在我设置的配置中:

ENABLE_PREPROCESSING   = YES

PREDEFINED             = DOXYGEN_SHOULD_SKIP_THIS

在密码里我做到了

^{pr2}$

为了从文档中排除log方法,我再次运行了doxygen,但没有得到预期的结果。log的文档仍在文档中。。。在

我做错什么了?如何正确地将一个方法排除在文档中,或出现在调用方/刻度图中?在


Tags: 方法代码文档log内容hereenable配置文件
2条回答

上面提到的文档有点过时(从版本1.3.5开始,即从2004年开始;目前我们有版本1.8.14)。请始终使用http://www.doxygen.nl处的官方文档。在

预处理并不是在所有语言上都完成的,也不是针对python的(据我所知,python没有预处理特性)。在

当前文件规定:

18.5如何使doxygen忽略某些代码片段?在

新的最简单的方法是添加一个注释块,在开始处添加一个\cond命令,在应该忽略的代码段末尾添加一个带有\endcond命令的注释块。当然,这应该在同一个文件中。 但您也可以使用doxygen的预处理器来实现: 如果你把

#ifndef DOXYGEN_SHOULD_SKIP_THIS
/* code that must be skipped by doxygen */
#endif /* DOXYGEN_SHOULD_SKIP_THIS */

在应该隐藏和放置的块周围:

^{pr2}$

在配置文件中,只要ENABLE_PREPROCESSING设置为YES,doxygen就应该跳过所有块。在

一个有效的例子:

def log_shown(text):
    pass

##\cond
def log_not_shown(text):
    pass
##\endcond

注意,由于示例中缺少文档,您必须将配置项EXTRACT...设置为YES。在

对于\cond\endcond请参阅文档,同时查看配置设置:ENABLED_SECTIONS

您可以尝试使用过滤器(参见filters4Doxygen)作为预处理器来获得结果。在

必须为pyton创建一个自定义过滤器(用作示例BATdoxFilter.bat(sh)): 过滤器“排除”将在bin/rgx中定义/不包括RGX,使用正则表达式:

## rule 1, /*skip*/.../*endskip*/  is destroid
regex1=(?mis)/\\*skip(.)*?endskip\\*/
replacement1=

注意:我没有测试regex,所以可能需要一些调整:请参见https://github.com/msillano/regexfilter/blob/master/README.pdf

我希望这能有所帮助。在

顺颂商学院

相关问题 更多 >