2013-04-12 14 views
16

Non riesco a capire come documentare le eccezioni usando Sphinx.Come documentare un'eccezione usando Sfinge

ho provato la seguente:

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. 
    """ 

Sfinge continua a dire "lista campo si conclude senza una riga vuota; unindent inaspettato." Quindi, come faccio a sbarazzarmi del messaggio e quale è il modo corretto di documentare eventualmente più eccezioni con la documentazione su più righe?

risposta

19

È possibile utilizzare una barra rovesciata per la continuazione di riga:

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

Aggiornamento:

Rientro sembra funzionare, invece di fuggire la nuova riga:

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

Ho modificato la sintassi un po ', Sphinx sembra dare i migliori risultati con quello. Non posso fare a meno di pensare che il backslash sia abbastanza hackerato. – siebz0r

+0

Sembra che il backslash non sia più necessario. Ho aggiornato la risposta di conseguenza. – siebz0r

+0

@ siebz0r: il backslash è un tremendo hack, e sarà brutto con aiuto (some_funct) per esempio. Non funzionerà bene in tutti i casi. – lpapp

0

questo mi dà qualcosa di bello.

si dimentica la : Prima il nome dell'eccezione

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

Usando questo, Sphinx ferma lamentarsi per il rientro e l'uscita sembra abbastanza bello, ma il nome dell'eccezione perde è involucro. per esempio. 'IOException' diventa' Ioexception'. – siebz0r

Problemi correlati