2016-08-04 2 views
0

私のpythonコードを文書化するときに、私はデコレータをマークして、docstringも更新することにしました。関数にドキュメントがあるのに、スフィンクスが文句を言わずにdeprecatedのドキュメントが正しく表示されない場合、これはうまく動作します。マークアップは空白行なしで終了します。しかし、マークアップはコメント内のものだけです

私は同等のコードにまで問題を縮小している:スフィンクスはWARNING: Explicit markup ends without a blank line; unexpected unindent.と文句を言い、この場合

def func(): 
    """.. deprecated:: 0.1.0 
    Please use :func:`func_new` 

    """ 

def func(): 
    """ 
    .. deprecated:: 0.1.0 
     Please use :func:`func_new` 

    """ 

def func(): 
    """.. deprecated:: 0.1.0 
    Please use :func:`func_new` 

    """ 

これらは、私は成功せずしようとしているすべてのバリエーションです。最後に何本の空行があるか、行の前に空白があるかどうかは関係ありません。

私はドキュメントがOKだった場合には警告を気に代わり、私は任意の(目に見える)を追加することなく、これを解決するにはどうすればよい

Module.func(): 
    Deprecated since version 0.1.0: Please use :func:`func_new` 

出力は

Module.func(): 
    Deprecated since version 0.1.0. 

    Please use :func:`func_new` 

で生産するのではないでしょうdocstringへのテキスト?

+0

2行目が2つのスペースだけインデントされていて、ドキュメントストリング全体のインデントを解除するという問題はありませんか?それがさらに2スペース分インデントされると(つまり 'Please 'の前に)どうなるでしょうか?これは、スフィンクスやデコレータ(実際には表示していない)の問題だとお考えですか? – jonrsharpe

+0

@jonrsharpeもっと多くの例で質問を更新しました。デコレータを投稿したことはありません。作成されたdocstringは、私が投稿したものとまったく同じです。 docstringが正しく変更されています(作成されたドキュメントの変更を見ることができます)。 – RedX

答えて

0

jonrsharpeは、献身的に正しい方向に私を指摘しました。

説明文字列は、まさにこのようにする必要があります

def func(): 
    """ 
    .. deprecated:: 0.1.0 
     Please use :func:`func_new` 

    """ 

二次の行にスペース、および.. deprecatedが開始"""ブロックと一致する必要があります。 """と同じ行で開始することはできません。

の前に文章献立を添付して.. deprecatedの前に問題を修正しました。

関連する問題