##// END OF EJS Templates
Merged Gael's ipython-sync-frontend branch with important mods....
Merged Gael's ipython-sync-frontend branch with important mods. This branch showed conflicts with recent changes I made to: IPython.kernel.core.interpreter IPython.kernel.core.tests.test_interpreter I resolved these conflicts and closed a ticket that Gael fixed in his branch. BUT, there is a related ticket that I opened. Furthermore, Gael was using nose in test_interpreter, but we need to keep things in IPython.kernel free of nose!

File last commit:

r1459:8d08214a
r1949:a093b34b 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