web-dev-qa-db-ja.com

Sphinxを使用して例外を文書化する方法

Sphinxを使用して例外を文書化する方法がわからないようです。

私は以下を試しました:

def some_funct():
    """
    :raises: ExceptionType: Some multi-line
        exception description.
    """


def some_funct():
    """
    :raises: ExceptionType, Some multi-line
        exception description.
    """


def some_funct():
    """
    :raises ExceptionType: Some multi-line
        exception description.
    """


def some_funct():
    """
    :raises:
        ExceptionType: Some multi-line
            exception description.
    """

Sphinxは、「フィールドリストは空白行なしで終了します。予期しないインデントが解除されます」と言い続けます。では、メッセージを取り除くにはどうすればよいですか?また、複数行のドキュメントで複数の例外を文書化する適切な方法は何ですか?

21
siebz0r

行の継続には円記号を使用できます。

def some_funct():
    """
    :raises ExceptionType: Some multi-line \
        exception description.
    """

更新:

改行をエスケープする代わりにインデントが機能するようです。

def some_funct():
    """
    :raises ExceptionType: Some multi-line
        exception description.
    """
28
ecatmur
def some_funct():
    """
    My documentation, but watch the empty line below (necessary)

        :raise: Exception

            when status != my_status 
            | status <= max_status

注: https://pythonhosted.org/an_example_pypi_project/sphinx.html#full-code-example いくつかの素晴らしいサンプルがあります(残念ながら複数行の例外ではありません)

Sphinxに文句を言わせないサンプルがあると思います。

def some_funct():
    """
    :raises: ExceptionType: Some multi-line
        exception description.

    """

(最後の空白行に注意してください)

0
ms09

これは私に何かいいものを与えます。

例外名の前の:を忘れた

def some_funct():
    """
    :raise: 
        :IOException: a probleme occured
                      and it can't be passed
    """
0
ornoone