12

我目前正在用autodoc. 但是,我在模块级别定义了几个包含长列表或字典的变量。它们与值一起包含在文档中,并且值未格式化,因此看起来像 10 行混乱。我想要的是包含这些变量的文档字符串,但要省略这些值或至少格式化得很好。

我试图从automodule指令中排除变量并像这样添加它:

.. automodule:: foo.bar
   :members:
   :exclude-members: longstuff

   .. py:data:: longstuff

这导致仅包含变量名称,而文档字符串和值longstuff都没有出现在文档中。

如何保留文档字符串并同时删除该值(或将其格式化)?

4

1 回答 1

5

没有用于在输出中省略模块级变量值的简单配置设置。但是您可以通过修改autodoc.pyDataDocumenter.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
于 2012-06-03T12:44:23.223 回答