2

在 Doxygen 中,如果我有以下代码结构:

foo/__init__.py
foo/bar.py

包含foo/bar.py

def meh():
  """@brief Some cool feature.

  More details...
  """
  print "Hello, world!"

foo/__init__.py包含:

# Publicly expose "foo.bar.meh" as "foo.meh".
from foo.bar import meh

在这个方案中,纯粹是出于结构代码布局的原因meh在内部foo.bar,应该像foo.meh在公共 API 中一样出现。

该方案的一个实际示例os.path来自标准库,该库公开公开了来自许多特定于操作系统的实现模块之一的符号(例如,这些模块也恰好可用os.path.nt)。


当我在这个源代码树上运行 Doxygen 时,我得到mehasfoo.bar.meh而我不能得到它foo.meh

meh我尝试使用该命令明确限定,@fn但随后我收到一些奇怪的警告,并且该函数不在输出中。使用@classfor classes 会产生一种情况,我有两个Meh类,一个有简短且失败的文档,而另一个有方法和其他成员。据推测,Doxygen 将该@class指令解释为另一个模块中的类的文档,并且不将文档与特殊注释块后面的类相关联。


如何使用 Doxygen 将内部模块符号公开为公共包符号?


作为记录,这是一个非常大的混合 C++ 和 Python 代码库,其中包含大量 Doxygen 注释,我对转换为 reStrcuturedText 或 Sphinx 不感兴趣(至少在短期内)。

4

0 回答 0