Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@tomeuvizoso.net>2008-01-07 17:53:31 (GMT)
committer Tomeu Vizoso <tomeu@tomeuvizoso.net>2008-01-07 17:53:31 (GMT)
commitcc7bbec111d691c198ef6c9ca761c8f576882d0a (patch)
treefeb554b4c1a7d0eeb7f11acaf3a5314fd85e1307 /src
parent8c2e8c0263200f7557bfdb51c1d58f5633e1c3c0 (diff)
#5525: Import ipython lazily.
Diffstat (limited to 'src')
-rw-r--r--src/sugar/logger.py19
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
+