4

私は API を準備しており、docstringをドキュメントとして使用しています。API サービスは、関連する ApiClass メソッドを選択し、各ドキュメント文字列を結合してドキュメントを作成します。このようにして、プログラム開発者と API のユーザーの両方が同じドキュメントにアクセスできました。

私のクラス構造は次のようなものです:

API_STATUS = {
    1: 'some status',
    2: 'some other status message'
}

class MyApi:
    def __init__(self):
        blah blah blah

    def ApiService1(self, some_param):
        """ 
        here is the documentation
            * some thing
            * some other thing
        keep on explanation
        """
        do some job 

    def  ApiService2(self, some_param):
        """"
        Another doc...
        """
        do some other job

HttpResponse最終的なドキュメント文字列を返すために使用しています。したがって、サービス ドキュメントを要求すると、出力は非常に読みやすくなります

ApiService1

    here is the documentation
        * some thing
        * some other thing
    keep on explanation

ApiService2

    Another doc...

API_STATUSここまではすべて問題ありませんが、辞書やリストなどの変数がいくつかあり、それらをドキュメントに追加したいと考えています。しかし、それらを文字列に解析するか、repr関数を呼び出すと、すべての書式設定が失われます

{1: '一部のステータス' 2: 'その他のステータス メッセージ', 3: '.....', 4: '........', ....}

これにより、読み取り不能になります(dictには約50の要素があるため)。

docstring として書き留めたくない (将来の更新で、関連する dict が更新されて dicstring が忘れられる可能性があるため)

HttpResponsesytling インデントを削除せず に、( として返す前に) 応答するドキュメント文字列に辞書を追加する方法はありますか?

4

1 に答える 1

15

pprint を使用:

>>> API_STATUS = {1: 'some status', 2: 'some other status message'}
>>> import pprint
>>> pprint.pprint(API_STATUS, width=1)
{1: 'some status',
 2: 'some other status message'}
于 2012-06-04T12:47:40.820 に答える