"cgitb" — Gestionnaire d'exceptions pour les scripts CGI
********************************************************

**Code source :** Lib/cgitb.py

Obsolète depuis la version 3.11: The "cgitb" module is deprecated (see
**PEP 594** for details).

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

Le module "cgitb" fournit un gestionnaire d'exceptions spécifique pour
les scripts Python. (Son nom est trompeur : Il a été conçu à l'origine
pour afficher des pile d'appels en HTML pour les scripts CGI, puis a
été généralisé par la suite pour afficher cette information en texte
brut.) Une fois ce module activé, si une exception remonte jusqu'à
l'interpréteur, un rapport détaillé sera affiché. Le rapport affiche
la pile d'appels, montrant des extraits de code pour chaque niveau,
ainsi que les arguments et les variables locales des fonctions
appelantes pour vous aider à résoudre le problème. Il est aussi
possible de sauvegarder cette information dans un fichier plutôt que
de l'envoyer dans le navigateur.

Pour activer cette fonctionnalité, ajoutez simplement ceci au début de
votre script CGI :

   import cgitb
   cgitb.enable()

Les paramètres optionnels de la fonction "enable()" permettent de
choisir si le rapport est envoyé au navigateur ou si le rapport est
écrit dans un fichier pour analyse ultérieure.

cgitb.enable(display=1, logdir=None, context=5, format='html')

   Appeler cette fonction remplace le gestionnaire d'exceptions par
   défaut de l'interpréteur par celui du module "cgitb", en
   configurant "sys.excepthook".

   Le paramètre optionnel *display* vaut "1" par défaut, et peut être
   mis à "0" pour désactiver l'envoi des piles d'appels au navigateur.
   Si l'argument *logdir* est donné les piles d'appels seront écrites
   dans des fichiers placés dans le dossier *logdir*. L'argument
   optionnel *context* est le nombre de lignes de code à afficher
   autour de la ligne courante dans le code source à chaque niveau de
   la pile d'appel, il vaut "5" par défaut. Si l'argument optionnel
   *format* est ""html"", le rapport sera rédigé en HTML. Le rapport
   sera écrit en texte brut pour toute autre valeur.  La valeur par
   défaut est ""html"".

cgitb.text(info, context=5)

   Cette fonction gère l’exception décrite par *info* (un triplet
   contenant le résultat de "sys.exc_info()"), elle présente sa pile
   d’appels en texte brut et renvois le résultat sous forme de chaîne
   de caractères. L’argument facultatif *contexte* est le nombre de
   lignes de contexte à afficher autour de la ligne courante du code
   source dans la pile d’appels ; la valeur par défaut est "5".

cgitb.html(info, context=5)

   Cette fonction gère l’exception décrite par *info* (un triplet
   contenant le résultat de "sys.exc_info()"), elle présente sa pile
   d’appels en HTML et renvoie le résultat sous forme de chaîne de
   caractères. L’argument facultatif *contexte* est le nombre de
   lignes de contexte à afficher autour de la ligne courante du code
   source dans la pile d’appels ; la valeur par défaut est "5".

cgitb.handler(info=None)

   Cette fonction gère les exceptions en utilisant la configuration
   par défaut (c'est à dire envoyer un rapport HTML au navigateur sans
   l'enregistrer dans un fichier). Il peut être utilisé lorsque vous
   avez intercepté une exception et que vous en voulez un rapport
   généré par "cgitb". L'argument optionnel *info* doit être un
   *n*-uplet de trois éléments contenant le type de l'exception,
   l'exception, et la pile d'appels, tel que le *n*-uplet renvoyé par
   "sys.exc_info()". Si l'argument *info* n'est pas donné, l'exception
   courante est obtenue via "sys.exc_info()".
