使用epydoc记录公共全局函数

时间:2010-07-12 20:20:50

标签: python documentation-generation epydoc

我有一个包含多个全局函数的模块和一个全局变量。变量和一些函数遵循Python的“私有”命名约定,名称的前导下划线。其他功能旨在公开,并且没有前导下划线。

我已在文件的开头声明了__all__,其中包含我的公共函数名称列表。

当尝试使用epydoc生成此模块的文档时,epydoc正在将模块中的所有视为私有。而且,由于我使用--no-private标志,这意味着输出仅显示模块本身的文档,而不是模块的元素或其各自的文档。

如果我不在epydoc中使用--no-private标志,那么所有内容都会被记录下来。但我不想要那里的私人物品。这是踢球者:如果我注释掉我的__all__,epydoc会正确记录我模块的公共元素。

我是一个相对的Python新手,但据我了解,__all__是为了让你在导入其他模块时让你免于麻烦,然后其他模块导入你的,以及试图保持更严格的盖子只要您知道您要访问的内容的名称,那么当所有内容都是技术上公开的时候。省略__all__会导致Bad Things™,或者我被告知。与此同时,epydoc声称正确并且离开了它,以表彰__all__来决定什么是公开的,什么不是。

我是否正在使用epydoc错误,假设我的代码中__all__的使用不正确,或者是epydoc中的错误? (我已经解决了epydoc中的一个错误处理错误,这显然是由较新版本的docutil引起的。)

1 个答案:

答案 0 :(得分:3)

使用epydoc记录多个文件时,此问题消失。它似乎是epydoc中的一个错误,但它很容易解决,只要你有一个实际的文档包,而不是一个模块。