2013-07-04 5 views
8

私はSphinxによってドキュメントに変換されることを意図ドキュメンテーション文字列で、Pythonのクラスに以下のようなものがある:Sphinxを使用してPythonプロパティ設定ツールのドキュメントを生成するにはどうすればよいですか?

class Direction(object): 
    """ 
    A direction in which movement can be made. 
    """ 
    def __init__(self): 
     self._name = None 

    @property 
    def name(self): 
     """ 
     The unique name of the direction. 

     :return: The direction name 
     :rtype: string 
     """ 
     return self._name 

    @name.setter 
    def name(self, value): 
     """ 
     Sets the direction name. 

     :param string value: The direction name 
     """ 
     self._name = value 

スフィンクスの出力は次のようなものになります。

クラス方向を (名称) 移動可能な方向。

方向の一意の名前。

戻り値:方向名

戻り値の型:限りそれが行くように細かな文字列

が、どの情報が完全に存在しないことを注意してくださいnameセッターについて。

スフィンクスにプロパティ設定ツールのドキュメントを生成させる方法はありますか?

+1

これは、スフィンクスがそれを探す場所であれば、getterのドキュメントで特別なget/set動作を文書化する方が意味があるようです。 setterのドキュメントは基本的に余計です。つまり、プロパティであるため明示的に値を設定し、パラメータを文書化する必要もありません。すべてのsetterが同じ引数を必要とし、setterが実際に明示的に呼び出されないためです。特別な取得/設定動作は、実際にはプロパティ全体の特徴です。プロパティのポイントは、個別のget/set関数呼び出しではなく、単一の属性名を使用してアクセスされる点です。 – BrenBarn

+0

@BrenBarnスフィンクスが期待していることがあれば、確かにそうすることができます。しかし、生成されたドキュメントは実際にそれがプロパティであることを示すものではなく、 ':param:'、 ':return:'および ':rtype:'タグを使って、 –

+2

@MatthewMurdoch、Sphinxは '()'を使わずにゲッターを記録します。これは、組み合わされたドキュメントストリングと共に、ユーザーがそれがプロパティであることを理解するのに役立ちます。 –

答えて

10

スフィンクスはプロパティ設定者のドキュメントストリングを無視するので、プロパティのドキュメントはすべて@propertyメソッドでなければなりません。

スフィンクスは特定の特定のタグ(たとえば:param ...:)を認識していますが、カスタムタグを受け入れ、その後に続くテキストのラベルとして表示します。

そのため次のようなものは、(必要であればgettersettertypeは、他のテキストに変更することができます)合理的な方法でドキュメントをレンダリングします。

クラス方向(名) 運動を行うことができる方向:

@property 
def name(self): 
    """ 
    The unique name of the direction. 

    :getter: Returns this direction's name 
    :setter: Sets this direction's name 
    :type: string 
    """ 
    return self._name 

生成されたドキュメントは次のようになります。

方向の一意の名前。

ゲッター:戻り、この方向の名前

セッター:を設定し、この方向の名前

タイプ:文字列

T @ BrenBarmと@ A-B-Bにハンクして、私をこの解決策の方向に向ける。

関連する問題