gpt4 book ai didi

python - 获取 sphinx 自动模块的 "flat"成员输出

转载 作者:太空狗 更新时间:2023-10-29 17:08:31 26 4
gpt4 key购买 nike

我正在使用 Sphinx autodoc 扩展来记录模块,我想在文档输出中获取模块成员的平面列表。

我尝试使用以下方法:

.. automodule:: modname
:members:

但是,这有两个问题:

  1. 它包括模块的文档字符串,我在这里想要它。

  2. 每个条目的名称都以“modname.”为前缀,这是完全多余的(因为此页面专门用于记录此模块)

但是,我找不到任何配置选项可以让我有选择地禁用这两个方面,同时仍然获得所有模块成员的自动列表。

我目前的计划是只使用自动函数(等)并显式枚举要记录的成员,但我仍然想知道我是否错过了实现我最初想要的东西的简单方法。

更新:我至少找到了第二部分的解决方法:在 conf.py 中设置 add_module_names=False。不过这是一个全局设置,所以它并没有真正回答我原来的问题。

最佳答案

看着这个answer对于类似的问题,我发现您可以使用 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)

请注意,del 语句是必需的,因为根据文档,对 lines 的修改必须就地发生(如果您创建一个新对象,它不会不工作)。

最后,您还可以使用 name 来过滤少数模块的文档字符串,同时保留其他模块的文档字符串。

关于python - 获取 sphinx 自动模块的 "flat"成员输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8110444/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com