diff options
author | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2008-01-07 17:53:31 (GMT) |
---|---|---|
committer | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2008-01-07 17:53:31 (GMT) |
commit | cc7bbec111d691c198ef6c9ca761c8f576882d0a (patch) | |
tree | feb554b4c1a7d0eeb7f11acaf3a5314fd85e1307 /src | |
parent | 8c2e8c0263200f7557bfdb51c1d58f5633e1c3c0 (diff) |
#5525: Import ipython lazily.
Diffstat (limited to 'src')
-rw-r--r-- | src/sugar/logger.py | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/sugar/logger.py b/src/sugar/logger.py index 2ad31d7..75119de 100644 --- a/src/sugar/logger.py +++ b/src/sugar/logger.py @@ -37,6 +37,17 @@ def set_level(level): if levels.has_key(level): logging.getLogger('').setLevel(levels[level]) +def _except_hook(type, value, traceback): + # Attempt to provide verbose IPython tracebacks. + # Importing IPython is slow, so we import it lazily. + try: + from IPython.ultraTB import AutoFormattedTB + sys.excepthook = AutoFormattedTB(mode='Verbose', color_scheme='NoColor') + except ImportError: + sys.excepthook = sys.__excepthook__ + + sys.excepthook(type, value, traceback) + def start(log_filename=None): logging.basicConfig(level=logging.WARNING, format="%(created)f %(levelname)s %(name)s: %(message)s") @@ -51,9 +62,5 @@ def start(log_filename=None): os.dup2(log_file.fileno(), sys.stdout.fileno()) os.dup2(log_file.fileno(), sys.stderr.fileno()) - # Attempt to provide verbose IPython tracebacks. - try: - from IPython.ultraTB import AutoFormattedTB - sys.excepthook = AutoFormattedTB(mode='Verbose', color_scheme='NoColor') - except ImportError: - pass + sys.excepthook = _except_hook + |