Skip to main content
Help us improve PyPI by participating in user testing. All experience levels needed!

An extended traceback formatter

Project description

XTraceback is an extended Python traceback formatter with support for variable expansion and syntax highlighting.


As a context manager - the stdlib traceback module is monkey patched:

>>> import sys
>>> import traceback
>>> import xtraceback
>>> def some_func():
...     some_var = 2*2
...     raise Exception("exc")
>>> with xtraceback.StdlibCompat():
...     try:
...         some_func()
...     except:
...         traceback.print_exc(file=sys.stdout) #doctest: +ELLIPSIS +REPORT_NDIFF
Traceback (most recent call last):
  File "<doctest README.rst[...]>", line 3, in <module>
    1 with xtraceback.StdlibCompat():
    2     try:
--> 3         some_func()
              g:some_func = <function some_func at 0x...>
              g:sys = <module 'sys' (built-in)>
              g:traceback = <module 'traceback' from='<stdlib>/traceback.pyc'>
              g:xtraceback = <package 'xtraceback' from='xtraceback'>
    4     except:
    5         traceback.print_exc(file=sys.stdout) #doctest: +ELLIPSIS +REPORT_NDIFF
  File "<doctest README.rst[...]>", line 3, in some_func
    1 def some_func():
    2     some_var = 2*2
--> 3     raise Exception("exc")
          some_var = 4
Exception: exc

As a sys.excepthook:

>>> xtraceback.compat.install_sys_excepthook()
>>> print sys.excepthook #doctest: +ELLIPSIS
<bound method StdlibCompat.print_exception of <xtraceback.stdlibcompat.StdlibCompat object at 0x...>>
>>> raise Exception("exc") #doctest: +ELLIPSIS
Traceback (most recent call last):
  File "<stdlib>/", line 1231, in __run
    compileflags, 1) in test.globs
  File "<doctest README.rst[...]>", line 1, in <module>
    raise Exception("exc") #doctest: +ELLIPSIS
Exception: exc

By itself:

>>> try:
...     raise Exception("exc")
... except:
...     print xtraceback.XTraceback(*sys.exc_info(), color=False) #doctest: +ELLIPSIS
Traceback (most recent call last):
  File "<doctest README.rst[...]>", line 2, in <module>
    1 try:
--> 2     raise Exception("exc")
          g:some_func = <function some_func at 0x...>
          g:sys = <module 'sys' (built-in)>
          g:traceback = <module 'traceback' from='<stdlib>/traceback.pyc'>
          g:xtraceback = <package 'xtraceback' from='xtraceback'>
    3 except:
    4     print xtraceback.XTraceback(*sys.exc_info(), color=False) #doctest: +ELLIPSIS
Exception: exc

In a sitecustomize module:

import xtraceback


For options and their defaults see xtraceback.XTraceback’s constructor. When using stdlib compat the xtraceback.StdlibCompat class has a defaults dictionary which should be updated with your overrides - the default instance exists at xtraceback.compat:

xtraceback.compat.defaults.update(option=value[, ...])


The package is on PyPI:

pip install xtraceback

Syntax highlighting depends on the pygments library:

pip install pygments

Nose plugin

The nose plugin is enabled with the –with-xtraceback flag. See nosetests –help for other options.

Project details

Release history Release notifications

History Node


This version
History Node


History Node


History Node


History Node


History Node


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
xtraceback-0.3.3.tar.gz (10.4 kB) Copy SHA256 hash SHA256 Source None Nov 9, 2011

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page