17

Numpydoc スタイルで文書化されている次の関数があり、文書がSphinx autofunction ディレクティブで自動生成されているとします。

def foo(x, y, _hidden_argument=None):
    """
    Foo a bar.

    Parameters
    ----------
    x: str
        The first argument to foo.
    y: str
        The second argument to foo.

    Returns
    -------
    The barred foo.

    """
    if _hidden_argument:
        _end_users_shouldnt_call_this_function(x, y)
    return x + y

非表示の引数をパブリック API の一部として宣伝したくありませんが、自動生成されたドキュメントに表示されます。関数への特定の引数を無視するように Sphinx に指示する方法はありますか、または (さらに良いことに) 先頭にアンダースコアが付いた引数を自動的に無視するようにする方法はありますか?

4

3 に答える 3

7

Sphinx にはそのためのオプションはないと思います。コードをハックせずにこれを実現する方法の 1 つは、カスタマイズされた署名を使用することです。

この場合、次のようなものが必要です。

.. autofunction:: some_module.foo(x, y)

これにより、関数のパラメーター リストがオーバーライドされ、ドキュメント内の不要な引数が非表示になります。

于 2015-06-01T22:44:59.087 に答える