##// END OF EJS Templates
merged from ~fdo.perez/ipython/trunk-dev
merged from ~fdo.perez/ipython/trunk-dev

File last commit:

r2058:7e8fc59a
r2469:81d5b6be merge
Show More
sync_traceback_trap.py
53 lines | 1.7 KiB | text/x-python | PythonLexer
/ IPython / kernel / core / sync_traceback_trap.py
Gael Varoquaux
Better traceback support.
r1439 # encoding: utf-8
"""Object to manage sys.excepthook().
Synchronous version: prints errors when called.
"""
__docformat__ = "restructuredtext en"
#-------------------------------------------------------------------------------
# Copyright (C) 2008 The IPython Development Team
#
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Imports
#-------------------------------------------------------------------------------
from traceback_trap import TracebackTrap
Brian Granger
Fixing installation related issues.
r2058 from IPython.core.ultratb import ColorTB
Gael Varoquaux
Better traceback support.
r1439
class SyncTracebackTrap(TracebackTrap):
gvaroquaux
More docstring work.
r1459 """ TracebackTrap that displays immediatly the traceback in addition
to capturing it. Useful in frontends, as without this traceback trap,
some tracebacks never get displayed.
"""
Gael Varoquaux
Better traceback support.
r1439
gvaroquaux
Clean up code, names, and docstrings.
r1455 def __init__(self, sync_formatter=None, formatters=None,
raiseException=True):
gvaroquaux
More docstring work.
r1459 """
sync_formatter: Callable to display the traceback.
formatters: A list of formatters to apply.
"""
Gael Varoquaux
Better traceback support.
r1439 TracebackTrap.__init__(self, formatters=formatters)
if sync_formatter is None:
sync_formatter = ColorTB(color_scheme='LightBG')
self.sync_formatter = sync_formatter
gvaroquaux
Clean up code, names, and docstrings.
r1455 self.raiseException = raiseException
Gael Varoquaux
Better traceback support.
r1439
def hook(self, *args):
""" This method actually implements the hook.
"""
self.args = args
gvaroquaux
Clean up code, names, and docstrings.
r1455 if not self.raiseException:
print self.sync_formatter(*self.args)
else:
raise
Gael Varoquaux
Better traceback support.
r1439