TP - Programmation Python pour la BIOInfo

ReStructured Text

DéfinitionReStructured Text

Le format ReStructured Text est un format de balisage léger qui permet de définir grâce à un fichier texte la structure de votre documentation.

Voici un petit panorama des simples balises que vous pourrez utiliser. Vous trouverez un petit guide des différentes balises sur cette page : http://docutils.sourceforge.net/docs/user/rst/quickref.html.

Instructions RST

Pages rst

La structure de la documentation est définie par pages où chaque page est définie par un fichier .rst

Le fichier index.rst est un fichier spécial qui contient la page d'accueil qui contient le menu principal de navigation.

Le fichier de base généré par sphinx ressemble a ceci  :

.. CheVal documentation master file, created by

sphinx-quickstart on Wed Oct 24 09:31:15 2012.

You can adapt this file completely to your liking,

but it should at least contain the root `toctree` directive.

Welcome to CheVal's documentation!

==================================

Contents:

.. toctree::

  :maxdepth: 2

Indices and tables

==================

* :ref:`genindex`

* :ref:`modindex`

* :ref:`search`

Il contient déjà un certain nombre de balises notament les titres de parties, les listes et le TOCTree.

Titres de partie

Les titres de parties et de sous partie sont défini a l'aide d'un soulignage a l'aide des caractères suivants : '=','-','*',...

Pour créer un titre, il suffit donc de l'écrire et de le souligner avec l'un des caractère ci-dessous de façon à ce que la ligne de soulignage soit au moins aussi longue que le titre.

Alterner les caractères permet ainsi de définir des différents niveaux.

Listes

Pour construire des liste, il suffit simplement de faire débuter chaque ligne par le caractère '*', '+' ou '-' (pour des listes non ordonnées) ou 1,2,3... pour des listes ordonnées.

Liens

Tous les titres sont concidérés comme des liens et peuvent être désignés par l'instruction :

`Welcome to CheVal's documentation!`_

Vous pouvez également créer des ancres par l'instruction

.. _monAncre:

Et créer des liens ver elle avec l'instruction monAncre_.

Commandes Sphinx

TOCTree

Le TocTree ou Table Of Content Tree est ce qui servira de table des matière pour votre documentation.

Pour l'instant il est vide, nous allons donc y ajouter des pages.

Créons par exemple dans le même dossier que index.rst, les fichiers page1.rst, page2.rst.

Dans chacune de ces pages créeons simplement un titre et un sous-titre

page1.rst

Partie 1 : Structure

====================

Introduction

------------

page2.rst

Partie 2 : Affichages

=====================

Fonctions Principales

---------------------

Nous allons ensuite ajouter ces pages au contenu de notre site et les référencer dans le TOCTree principal.

Pour cela il suffit d'ajouter le nom des pages a la suite de l'instruction toctree.

.. CheVal documentation master file, created by

sphinx-quickstart on Wed Oct 24 09:31:15 2012.

You can adapt this file completely to your liking,

but it should at least contain the root `toctree` directive.

Welcome to CheVal's documentation!

==================================

Contents:

.. toctree::

  :maxdepth: 2

<ligne vide obligatoire>

    page1

    page2

Indices and tables

==================

* :ref:`genindex`

* :ref:`modindex`

* :ref:`search`

A la génération de votre documentation, vous verez apparaitre dans votre menu des liens vers les parties et sous parties des 2 pages.

TocTree

Ici les sous-parties sont également visibles puisque l'attribut :maxdepth: est fixé à 2 ce qui inclut donc les titres et sous-titre. Si vous souhaitez afficher uniquement la liste des titres. Fixez cette valeur à 1.

Instructions Sphinx : .. automodule:: myModule

Sphinx offre des instructions, qui s'ajoutent a celle de ReStructured Text et qui vont nous permettre la génération automatique de la documentation a partir des commentaires.

Prenons ce module python myModule.py :

'''

Module tres important

'''

#

def printNumbers(n):

  '''

  Affiche Les nombres de 0 a n-1.

  '''

  for i in range(n) :

    print(i)

#

def printWords(sentence):

  '''

  Affiche une phrase mot par mot.

  '''

  for word in sentence :

    print word

Il contient des fonctions d'affichages dont j'aimerais faire la documentation dans le fichier que j'ai appelé page2.rst.

Pour cela on ajoute dans le fichier l'instruction suivante : .. automodule:: myModule

Partie 2 : Affichages

=====================

Fonctions Principales

---------------------

.. automodule:: myModule

Cette instruction permet d'ajouter à la documentation toute l'information contenue dans le commentaire général du module (les commentaires situés sur les premières lignes du module)

Documentation générale

Instructions Sphinx : :members:

Mais cela peut ne pas être suffisant et l'on souhaiterait pouvoir ajouter a cela la liste des fonctions avec leur documentation propre.

Pour cela, il faut ajouter sur la ligne suivant .. automodule:: myModule la commande :members: (avec une indentation). Elle permet à Sphinx de comprendre que vous souhaitez incorporer ici la documentation de tous les membres du module.

Partie 2 : Affichages

=====================

Fonctions Principales

---------------------

.. automodule:: myModule

   

Documentation des membres

Métadonnées de module

Pour une meilleure lisibilité et afficher la paternité de votre module, je vous recommande de faire figurer les information d'auteur et de date de création en début de module.

Pour cela vous pouvez utiliser les balises :Author: et :Date:.

Métadonnées

Vous pouvez compléter ces champs par d'autres comme :Version:, :Description: ou tout autre information que vous jugerez utile (entre deux ':').

Instructions Sphinx : .. todo : : et .. todolist : :

Si vous avez choisi d'activer l'extension todo de sphinx, vous avez accès à deux instruction supplémentaires : .. todo:: et .. todolist::

Vous pouvez ajouter a un endroit du code ou il vous reste quelque chose a faire l'instruction .. todo ::

def printNumbers(n):

   '''

  Affiche Les nombres de 0 a n-1.

  .. todo::

      Completer la documentation

  '''

  for i in range(n) :

    print(i)

Ensuite, en utilisant l'instruction .. todolist::, vous afficherez la liste complète des choses qu'il vous reste a faire dans le programme avec un lien vers leur emplacement.

A faire

-------

.. todolist ::

TODOList

RemarqueInstructions Sphinx : .. todo : : et .. todolist : :

Dans le même esprit et cette fois-ci sans extension, vous avez acces aux instructions .. seealso:: , .. note:: et .. warning::

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimerRéalisé avec Scenari (nouvelle fenêtre)