nco*_*lan 15 python documentation python-sphinx
我正在使用Sphinx autodoc扩展来记录模块,我想在文档输出中获得模块成员的平面列表.
我尝试使用以下内容:
.. automodule:: modname
:members:
Run Code Online (Sandbox Code Playgroud)
但是,这有两个问题:
它包括模块的文档字符串,我不希望在这里.
每个条目的名称都以"modname."为前缀,这是完全冗余的(因为此页面专门用于记录此模块)
但是,我还没有找到任何配置选项,让我有选择地禁用这两个方面,同时仍然获得所有模块成员的自动列表.
我目前的计划是只使用autofunction(etc)并明确枚举要记录的成员,但我仍然想知道我是否错过了一种简单的方法来实现我原来想要的.
更新:我至少发现第二部分解决方法:设置add_module_names=False在conf.py.这是一个全球性的环境,所以它并没有真正回答我原来的问题.
查看类似问题的答案,我发现您可以使用该autodoc-process-docstring事件从模块中删除文档字符串,并将以下代码附加到您的conf.py:
def skip_modules_docstring(app, what, name, obj, options, lines):
if what == 'module':
del lines[:]
def setup(app):
app.connect('autodoc-process-docstring', skip_modules_docstring)
Run Code Online (Sandbox Code Playgroud)
请注意,该del语句是必需的,因为根据文档,修改必须lines发生在适当的位置(如果您创建一个新对象,则它不起作用)。
最后,您还可以用来name过滤几个模块的文档字符串,同时保留其他模块的文档字符串。