Sphinx自动摘要:如何删除__init__的自动成员

2022-04-21 00:00:00 python python-sphinx autodoc

问题描述

问题

我使用sphinx.ext.autosummary作为我的python包。问题是.. autosummary::始终添加.. automethod:: __init__,即使没有文档记录也是如此。

同时,我找到了各种方法来第三次包含它(作为特殊成员)或将它包含在方法中;但我没有找到如何删除.. automethod:: __init__的方法。

如图所示,这只是复制了上面的类规范,根本没有任何用处。当然,我可以手动创建所有*.rst,但这不是一个选项,而且会使autosumary变得有些过时。此外,它还会因duplicate object description(__init__也在方法中,这很好)而创建警告。

系统

  • python 3.8.5
  • sphinx-build 4.0.2(带引导主题)

有没有人有我从几小时以来一直在寻找的黄金提示?:)

提前感谢!


解决方案


解决方案

templates_path(参见conf.py;通常为"_templates")中创建一个文件夹autosummary。搜索默认的class.rst,将其复制到新文件夹(_templates/autosummary/class.rst)中,并根据需要调整模板。不需要其他内容。

我对class.rst的调整

  • .. autoclass:: {{ objname }}添加:noindex:之后。
  • 已删除第.. automethod:: __init__行。
  • 需要确定:noindex:作为默认设置是否合适。

非常感谢@mzjn,这是我错过的提示;拯救了我的一天!

相关文章