2012-06-04 3 views
1

Je prépare une API, et utilise docstrings comme documentation. Un service api sélectionne les méthodes ApiClass associées et joint chaque docstring pour créer la documentation. De cette façon, les développeurs de programmes et les utilisateurs de l'API ont atteint la même documentation.Sortie/Imprimer un dictionnaire "lisible"

Ma structure de classe est comme:

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 

J'utilise HttpResponse pour retourner la chaîne de documentation finale. Donc, quand je demande la documentation de service, la production est tout à fait lisible

ApiService1

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

ApiService2

Another doc... 

Tout est grand jusqu'à ici, mais il y a certaines variables comme API_STATUS dictionnaire et quelques listes, que je souhaite ajouter à la documentation. Mais quand je les parser à chaîne, ou appeler la fonction repr, le formatage est parti

{1: 'un statut' 2: 'un autre message d'état', 3: '.....', 4 : '........', ....}

ce qui le rend illisible (puisque dict a environ 50 éléments.).

Je ne veux pas écrire est en baisse comme docstring (parce que dans les mises à jour futures, dict liées peut être mis à jour et dicstring pourrait oublier)

Y at-il un moyen d'ajouter mon dictionnaire à ma chaîne de documentation Réagir aujourd'hui (avant de le retourner comme HttpResponse) sans supprimer les indentations de sytling?

Répondre

10

Utilisation 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'} 
+0

Merci, 'pprint.pformat' est ce que je cherche – FallenAngel

Questions connexes