Sphinx有一个名为automethod
的功能,它从方法的docstring中提取文档并将其嵌入到文档中。但它不仅嵌入了docstring,还嵌入了方法签名(name + arguments)。如何嵌入仅 docstring(不包括方法签名)?
答案 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
升级到当前版本如果在您的特定部署中完全可行,则采用更好的方法。