2009-08-25 10 views
20

J'ai installé Sphinx afin de documenter certains modules python et la classe sur laquelle je travaille. Bien que le langage de balisage semble très bien, je n'ai pas réussi à auto-documenter un code python.Utilisation de sphinx pour auto-documenter une classe python, module

Fondamentalement, je le module python suivant:

SegLib.py 

Et une classe appelée Seg en elle. Je voudrais afficher les docstrings de la classe et du module dans le document sphinx généré, et y ajouter du texte formaté.

Mon index.rst ressemble à ceci:

Contents: 

.. toctree:: 
:maxdepth: 2 

chapter1.rst 

et chapter1.rst:

This is a header 
================ 
Some text, *italic text*, **bold text** 

* bulleted list. There needs to be a space right after the "*" 
* item 2 

.. note:: 
    This is a note. 

See :class:`Seg` 

Mais Seg est tout simplement imprimé en gras, et non liés à une documentation autogenerated de la classe.

Essayer: Voir : Classe: Seg Module: mod: 'SegLib' Module: mod: 'SegLib.py'

n'a pas aidé, aussi. Des idées ou de bons liens tutoriels?

Edit: a changé SegLib à des segments (merci, iElectric!), Et a changé chapter1.rst à: Le: mod: segments Module ---------------- ----------

.. automodule:: segments.segments 

.. autoclass:: segments.segments.Seg 

encore, ne peut pas se documenter directement sphynx fonctions au sein d'une classe, ou mieux - pour ajouter automatiquement toutes les fonctions au sein d'une classe au document. Essayé

.. autofunction:: segments.segments.Seg.sid 

et obtenu:

autodoc can't import/find function 'segments.segments.Seg.sid', it reported error: "No module named Seg" 

Toute idée comment autodocument les fonctions et les classes avec une commande courte?

Udi

+0

Où sont vos directives '.. automodule ::' et '.. autoclass ::'? S'il vous plaît montrer où vous les mettez. –

+1

Je suppose que vous devez également vous assurer que les modules/packages que vous essayez de documenter sont chargeables par sphinx, c'est-à-dire dans le chemin de recherche de python. – codeape

+1

Vous devriez vraiment lire http://sphinx.pocoo.org/ext/autodoc.html. Lisez tout, et toutes vos questions recevront une réponse.Pour les membres, ajoutez: members: to after autoclass directive. – iElectric

Répondre

12

Ajouter au début du fichier:

.. module:: SegLib 

Essayez d'utiliser : autoclass: directive pour la classe doc.

BTW: les noms des modules doivent être lower_case.

EDIT:I learned a lot from reading other source files.

+0

thanks_but_in_which_file_should_i_put_these_directives :-)? –

+0

Dans index.rst, pour les débutants. Lorsque votre documentation deviendra plus grande, divisez-la en plusieurs fichiers. – iElectric

+0

Le lien est rompu. –

Questions connexes