使用 Sphinx 记录时省略(或格式化)变量的值

2023-11-20

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

我试图将变量排除在外automodule指令并像这样添加它:

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

   .. py:data:: longstuff

这导致仅包含变量名称,而文档字符串和值longstuff文档中不存在。

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


没有简单的配置设置可以在输出中省略模块级变量的值。但你可以通过修改来做到这一点DataDocumenter.add_directive_header()中的方法自动文档.py。该方法中的关键行是

self.add_line(u'   :annotation: = ' + objrepr, '<autodoc>')

where 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Sphinx 记录时省略(或格式化)变量的值 的相关文章

随机推荐