##// END OF EJS Templates
Merge with upstream.
Merge with upstream.

File last commit:

r1459:8d08214a
r1588:462df93f 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
from IPython.ultraTB import ColorTB
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