# `cgitb` — Administrador traceback para scripts CGI.

Código fuente: Lib/cgitb.py

Obsoleto desde la versión 3.11, se eliminará en la versión 3.13: El módulo `cgitb` está deprecado (ver PEP 594 para más detalles).

El modulo `cgitb` proporciona un manejador de excepciones especial para script de Python. (Su nombre es un poco engañoso. Fue diseñado originalmente para mostrar una amplia información de traceback en HTML para los scripts CGI). Más tarde se generalizó para mostrar también esta información en texto plano). Después de activar este módulo, si se produce una excepción no capturada, se mostrará un informe detallado y formateado. El informe incluye un traceback que muestra extractos del código fuente para cada nivel, así como los valores de los argumentos y las variables locales de las funciones que se están ejecutando actualmente, para ayudar a depurar el problema. Opcionalmente, puede guardar esta información en un archivo en lugar de enviarla al navegador.

Para activar esta función, simplemente añada lo siguiente a la parte superior de su script CGI:

    import cgitb
    cgitb.enable()

Las opciones de la función `enable()` controlan si el informe se muestra en el explorador y si este se registra en un archivo para su posterior análisis.

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

  Esta función hace que el módulo `cgitb` se encargue del control predeterminado del intérprete para las excepciones estableciendo el valor de `sys.excepthook`.

  El argumento opcional display tiene como valor predeterminado `1` y se puede establecer en `0` para suprimir el envío de la traza al navegador. Si el argumento logdir está presente, los informes de traceback se escriben en los archivos. El valor de logdir debe ser un directorio donde se estos archivos serán colocados. El argumento opcional context es el número de líneas de contexto que se mostrarán alrededor de la línea actual del código fuente en el traceback; esto tiene como valor predeterminado `5`. Si el argumento opcional format es `"html"`, la salida se formatea como HTML. Cualquier otro valor fuerza la salida de texto sin formato. El valor predeterminado es `"html"`.

cgitb.text(info, context=5)

  Esta función controla la excepción descrita por info (una tupla de 3 que contiene el resultado de `sys..exc_info()`), dando formato a su traceback como texto y retornando el resultado como una cadena de caracteres. El argumento opcional context es el número de líneas de contexto que se mostrarán alrededor de la línea actual de código fuente en el traceback; esto tiene como valor predeterminado `5`.

cgitb.html(info, context=5)

  Esta función controla la excepción descrita por info (una tupla de 3 que contiene el resultado de `sys..exc_info()`), dando formato a su traceback como HTML y retornando el resultado como una cadena de caracteres. El argumento opcional context es el número de líneas de contexto que se mostrarán alrededor de la línea actual de código fuente en el traceback; esto tiene como valor predeterminado `5`.

cgitb.handler(info=None)

  Esta función maneja una excepción utilizando la configuración predeterminada (es decir, mostrar un informe en el navegador, pero no registrar en un archivo). Esto puede ser usado cuando has capturado una excepción y quieres reportarla usando `cgitb`. El argumento opcional info debería ser una tupla de 3 que contenga un tipo de excepción, un valor de excepción y un objeto de traceback, exactamente como la tupla retornada por `sys.exc_info()`. Si no se proporciona el argumento info, la excepción actual se obtiene de `sys.exc_info()`.