debugger: load 'ipdb' if present

* debugger: load 'ipdb' if present

Transparently chooses between the IPython-enhanced 'ipdb' or the
standard 'pdb'.

* datasette install ipdb

---------

Co-authored-by: Simon Willison <swillison@gmail.com>
This commit is contained in:
Tiago Ilieve 2024-08-21 00:02:35 -03:00 committed by GitHub
commit 1f3fb5f96b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 11 additions and 3 deletions

View file

@ -5,9 +5,13 @@ from .utils.asgi import (
) )
from .views.base import DatasetteError from .views.base import DatasetteError
from markupsafe import Markup from markupsafe import Markup
import pdb
import traceback import traceback
try:
import ipdb as pdb
except ImportError:
import pdb
try: try:
import rich import rich
except ImportError: except ImportError:

View file

@ -111,10 +111,14 @@ Debugging
Any errors that occur while Datasette is running while display a stack trace on the console. Any errors that occur while Datasette is running while display a stack trace on the console.
You can tell Datasette to open an interactive ``pdb`` debugger session if an error occurs using the ``--pdb`` option:: You can tell Datasette to open an interactive ``pdb`` (or ``ipdb``, if present) debugger session if an error occurs using the ``--pdb`` option::
datasette --pdb fixtures.db datasette --pdb fixtures.db
For `ipdb <https://pypi.org/project/ipdb/>`__, first run this::
datasette install ipdb
.. _contributing_formatting: .. _contributing_formatting:
Code formatting Code formatting