在Sphinx文档中显示* only * docstring

时间:2009-09-02 21:39:10

标签: python documentation python-sphinx

Sphinx有一个名为automethod的功能,它从方法的docstring中提取文档并将其嵌入到文档中。但它不仅嵌入了docstring,还嵌入了方法签名(name + arguments)。如何嵌入 docstring(不包括方法签名)?

参考:http://sphinx.pocoo.org/ext/autodoc.html

1 个答案:

答案 0 :(得分:17)

我认为您正在寻找的是:

from sphinx.ext import autodoc

class DocsonlyMethodDocumenter(autodoc.MethodDocumenter):
  def format_args(self):
    return None

autodoc.add_documenter(DocsonlyMethodDocumenter)

per the current sources这应该允许覆盖哪个类负责记录方法(旧版本的add_documenter禁止这样的覆盖,但现在明确允许它们)。当format_args返回无时,autodoc中记录的方式是“不要打扰签名”。

我认为这是执行此任务的干净,架构方式,因此,优于monkeypatching替代方案。如果您需要使用sphinx的旧版本,但是您可能确实需要monkeypatch(autodoc.MethodDocumenter.format_args=lambda _:None - eek! - )尽管我建议将sphinx升级到当前版本如果在您的特定部署中完全可行,则采用更好的方法。