我目前正在使用autodoc
记录整个模块。但是,我在模块级别定义了几个包含长列表或dicts的变量。它们与值一起包含在文档中,并且值未格式化,因此看起来像10行混乱。我想要的是包含那些变量的文档字符串,但是要省略值或至少很好地格式化。
我试图从automodule
指令中排除变量并将其添加为:
.. automodule:: foo.bar
:members:
:exclude-members: longstuff
.. py:data:: longstuff
这导致只包含变量名,而文档字符串和longstuff
的值都没有出现在文档中。
如何保持文档字符串并同时删除值(或将其格式化)?提前谢谢。
答案 0 :(得分:4)
没有简单的配置设置可以省略输出中模块级变量的值。但您可以通过修改autodoc.py中的DataDocumenter.add_directive_header()
方法来实现。该方法的关键路线是
self.add_line(u' :annotation: = ' + objrepr, '<autodoc>')
其中objrepr
是值。
添加到 conf.py 的以下猴子补丁适用于我:
from sphinx.ext.autodoc import ModuleLevelDocumenter, DataDocumenter
def add_directive_header(self, sig):
ModuleLevelDocumenter.add_directive_header(self, sig)
# Rest of original method ignored
DataDocumenter.add_directive_header = add_directive_header