123456789101112131415161718192021222324252627282930313233343536373839 |
- from __future__ import print_function
- import sys
- from contextlib import contextmanager
- from IPython.utils import io
- from .__main__ import set_trace
- from .__main__ import post_mortem
- def update_stdout():
- # setup stdout to ensure output is available with nose
- io.stdout = sys.stdout = sys.__stdout__
- def sset_trace(frame=None, context=3):
- update_stdout()
- if frame is None:
- frame = sys._getframe().f_back
- set_trace(frame, context)
- def spost_mortem(tb=None):
- update_stdout()
- post_mortem(tb)
- def spm():
- spost_mortem(sys.last_traceback)
- @contextmanager
- def slaunch_ipdb_on_exception():
- try:
- yield
- except Exception:
- e, m, tb = sys.exc_info()
- print(m.__repr__(), file=sys.stderr)
- spost_mortem(tb)
- finally:
- pass
|