6

多数の python ファイルがあり、プロジェクトの公開 API ドキュメントを生成したいと考えています。API の一部であるすべての関数をデコレータで装飾しました。

例えば:

@api
def post_comment(comment)"
    """ Posts a coment
    """
    pass

同じクラスに他のパブリック メソッドがあります。API は複数のファイルに分散されており、各ファイルはメソッドでクラスを定義しており、一部のメソッドにはこの @api デコレータがあります。パブリック API のためだけにドキュメントを生成するように Sphinx に指示するにはどうすればよいですか?

4

1 に答える 1

4

私は自分の質問に答えています...さらに検索した後、これを見つけました:

https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html#skipping-members

基本的に、ファイル内の関数を定義してconf.py、各メンバーを調べ、適切なデコレータを持たないものをすべてスキップできます。

これは私のファイルの最後にある小さな例conf.pyです (これは sphinx の設定ファイルです):

def my_doc_skip(app, what, name, obj, skip, options):
    if what != "method":
        return True

    # if obj is decorated with @api
    #     return True
    # return False

def setup(app):
    app.connect('autodoc-process-docstring', my_process_docstring)
    app.connect('autodoc-skip-member', my_doc_skip)

関数を使用して docstring を処理することもできます。

于 2012-04-27T19:09:18.463 に答える