2013-04-12 11 views
16

Nie mogę się domyślić, jak dokumentować wyjątki za pomocą Sphinx.Jak dokumentować wyjątek za pomocą Sphinx'a

Próbowałem następujące:

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 powtarza "lista Pole kończy się bez pustej linii; nieoczekiwany unindent". Jak więc pozbyć się wiadomości i jaki jest właściwy sposób dokumentowania możliwie wielu wyjątków za pomocą wieloliniowej dokumentacji?

Odpowiedz

19

można użyć backslash na linii kontynuacji:

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

Aktualizacja:

Wcięcia wydaje się działać zamiast ucieczki nowa linia:

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

Trochę zmieniłem składnię, wydaje mi się, że Sphinx daje najlepsze efekty. Nie mogę oprzeć się wrażeniu, że backslash jest dość hackish. – siebz0r

+0

Wygląda na to, że odwrotny ukośnik nie jest już potrzebny. Odpowiednio zaktualizowałem odpowiedź. – siebz0r

+0

@ siebz0r: backslash to potężny hack i na przykład będzie brzydki z pomocą (some_funct). Nie będzie dobrze działać we wszystkich przypadkach. – lpapp

0

daje mi to coś miłego.

zapomnienia : przed nazwą wyjątków

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

Używanie tego Sphinx zatrzymuje narzekają tiret a wyjście wygląda całkiem ładne, ale nazwa wyjątek traci to obudowa. na przykład 'IOException' zmienia się w" Ioexception ". – siebz0r

Powiązane problemy