2012-04-25 1 views
3

Je l'utilise à la fois Python et Ruby et j'aime vraiment la documentation Yard Ruby serveur:Existe-t-il un équivalent de Ruby's Yard en Python?

http://yardoc.org/,

Je voudrais savoir s'il existe un équivalent dans le monde Python? Le "pydoc -p" est vraiment vieux, moche et pas confortable du tout, et il ne semble pas que Sphinx et Epydoc supportent le mode serveur.

Connaissez-vous un équivalent?

Merci

+3

Je ne connais Yard. Pourriez-vous expliquer ce que Yard fait, et plus précisément quelles fonctionnalités vous attendez d'un équivalent Python? –

+0

Yard est un serveur de documentation, il génère automatiquement la documentation des gemmes (équivalent des oeufs) lors de leur installation et peut également être utilisé comme générateur de documentation autonome (comme le sphinx), il fournit une interface web moderne et agréable. et les arbres de classes/modules, vous pouvez voir un exemple de documentation en ligne ici: http://rubydoc.info/docs/yard/frames/file/docs/WhatsNew.md – Kedare

+0

Les fonctionnalités que je recherche sont un serveur de documentation c'est plus pratique à utiliser que pydoc -p, cela me permettrait de chercher dans la documentation et d'avoir un moyen facile de naviguer dans la documentation (comme les arbres de Yard) – Kedare

Répondre

3

paquets Python n'ont pas vraiment une convention où mettre la documentation. La documentation principale d'un paquet peut être construite avec une gamme d'outils différents, parfois basés sur les docstrings, parfois non. Ce que vous voyez avec pydoc -p est le contenu du paquet et les docstrings seulement, pas la documentation principale. Si c'est tout ce que vous voulez, vous pouvez également utiliser Sphinx à cette fin. Voici sphinx-server, un script shell Je viens codé jusqu'à:

#!/bin/sh 
sphinx-apidoc -F -o "$2" "$1" 
cd "$2" 
make html 
cd _build/html 
python -mSimpleHTTPServer 2345 

Appelez ce avec le répertoire du paquet du paquet que vous voulez avoir des informations sur comme premier argument et le répertoire où construire la nouvelle documentation comme second argument . Ensuite, pointez votre navigateur pour http://localhost:2345/

(Note: Vous voulez probablement supprimer l'invocation de serveur Web à partir du script Il est plus dans le but de demonstrattion Cela suppose Python 2.x...)

+0

J'ai essayé ceci sur un projet aléatoire (SQLAlchemy) et je reçois seulement une liste de modules sans documentation, est-ce normal? – Kedare

+0

@Kedare: Je l'ai également essayé sur un paquet aléatoire ('logging' de la bibliothèque standard), et cela a fonctionné pour moi. Le paquet doit être installé de telle sorte qu'il puisse être importé par Python, et vous devez pointer Sphinx vers le répertoire d'où le paquet peut être importé. Sphinx peut uniquement créer automatiquement la documentation pour les modules qu'il peut importer. –

+0

D'accord, c'était un problème de cas, je l'ai fait encore avec les bons cas sur le nom de paquet et cela a fonctionné :) – Kedare

1

semble un peu inutile de mettre en œuvre un serveur web juste pour servir quelques HTML. J'ai tendance à aimer la philosophie * ix de chaque outil en faisant une petite chose, eh bien. Pas qu'un serveur web soit petit.

Mais vous pouvez regarder http://docs.python.org/library/basehttpserver.html