Skip to main content

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

Examples

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>/doctest.py", 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
<BLANKLINE>

In a sitecustomize module:

import xtraceback
xtraceback.compat.install()

Configuration

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[, ...])

Installation

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.

Metadata

Release files for xtraceback 0.3.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for xtraceback 0.3.3
File Size Uploaded Provenance
xtraceback-0.3.3.tar.gz 10.4 kB Without provenance Details

Release files / xtraceback-0.3.3.tar.gz

Download URL xtraceback-0.3.3.tar.gz
Size 10.4 kB
Tags Source
SHA-256 checksum
How to use checksums
7460134dbc98978d17411321a8c466538dc3371c8411e73c25309b89706c94fb
BLAKE2b-256 checksum
How to use checksums
7144f7bb4938697a0ba2fd40f2d536e4a4668439b6e41d01d9ee7a53d6ee9afa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for xtraceback 0.3.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page