11

Sphinxにはautomethod、メソッドのdocstringからドキュメントを抽出し、それをドキュメントに埋め込むという機能があります。ただし、docstringだけでなく、メソッドのシグネチャ(名前+引数)も埋め込まれます。docstringのみ(メソッドシグネチャを除く)を埋め込むにはどうすればよいですか?

参照:http ://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html

4

1 に答える 1

17

あなたが探しているのは次のとおりだと思います:

from sphinx.ext import autodoc

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

autodoc.add_documenter(DocsonlyMethodDocumenter)

現在のソースによると、これにより、メソッドのドキュメント化を担当するクラスをオーバーライドできるはずです(古いバージョンの のadd_documenterそのようなオーバーライドは禁止されていましたが、現在は明示的に許可されています)。format_argsもちろん、 return Noneを持つことautodocは、「署名を気にしないでください」と言う文書化された方法です。

これは、このタスクを実行するためのクリーンで設計された方法であり、そのため、代替手段をモンキーパッチするよりも好ましいと思います。ただし、いくつかの古いバージョンを使用する必要があるsphinx場合は、実際にモンキーパッチを適用する必要がある場合があります (--eek autodoc.MethodDocumenter.format_args=lambda _:None!-)。ただしsphinx、特定の展開で実行可能な場合は、より良いアプローチとして現在のバージョンにアップグレードすることをお勧めします。

于 2009-09-06T01:37:46.583 に答える