##// END OF EJS Templates
Lots of work on exception handling, including tests for traceback printing....
Lots of work on exception handling, including tests for traceback printing. We finally have some tests for various exception mode printing, via doctests that exercise all three modes! Also changed handling of sys.exit(X) to only print the summary message, as SystemExit is most often a 'handled' exception. It can still be 100% silenced via '%run -e', but now it's much less intrusive. Added a new %tb magic to print the last available traceback with the current xmode. One can then re-print the last traceback with more detail if desired, without having to cause it again.

File last commit:

r2044:cc9fa6af
r2440:0caaf43a
Show More
rlineimpl.py
55 lines | 1.7 KiB | text/x-python | PythonLexer
vivainio
merge all from 0.7.3 branch to trunk
r503 # -*- coding: utf-8 -*-
fperez
Fix bug with 2.3 and readline; clean up.
r644 """ Imports and provides the 'correct' version of readline for the platform.
vivainio
merge all from 0.7.3 branch to trunk
r503
Brian Granger
rlineimpl.py utils/rlineimpl.py and imports updated.
r2044 Readline is used throughout IPython as 'import IPython.utils.rlineimpl as readline'.
vivainio
merge all from 0.7.3 branch to trunk
r503
fperez
Fix bug with 2.3 and readline; clean up.
r644 In addition to normal readline stuff, this module provides have_readline
boolean and _outputfile variable used in genutils.
Fernando Perez
Remove svn-style $Id marks from docstrings and Release imports....
r1853 """
vivainio
merge all from 0.7.3 branch to trunk
r503
import sys
fperez
Fix bug with 2.3 and readline; clean up.
r644 try:
from readline import *
import readline as _rl
have_readline = True
except ImportError:
vivainio
fixed rlineimpl to work properly with py2exed pyreadline
r671 try:
from pyreadline import *
import pyreadline as _rl
have_readline = True
except ImportError:
have_readline = False
vivainio
merge all from 0.7.3 branch to trunk
r503
fperez
Fix bug with 2.3 and readline; clean up.
r644 if sys.platform == 'win32' and have_readline:
vivainio
merge all from 0.7.3 branch to trunk
r503 try:
fperez
Fix bug with 2.3 and readline; clean up.
r644 _outputfile=_rl.GetOutputFile()
vivainio
fixed rlineimpl to work properly with py2exed pyreadline
r671 except AttributeError:
fperez
Fix bug with 2.3 and readline; clean up.
r644 print "Failed GetOutputFile"
have_readline = False
bgranger
Now IPython works with OS X 10.5 (Leopards) libedit based readline module.
r884
# Test to see if libedit is being used instead of GNU readline.
# Thanks to Boyd Waters for this patch.
uses_libedit = False
if sys.platform == 'darwin' and have_readline:
bgranger
Changed tabs to spaces. Sorry about that :)
r890 import commands
(status, result) = commands.getstatusoutput( "otool -L %s | grep libedit" % _rl.__file__ )
if status == 0 and len(result) > 0:
# we are bound to libedit - new in Leopard
_rl.parse_and_bind("bind ^I rl_complete")
print "Leopard libedit detected."
uses_libedit = True
bgranger
Now IPython works with OS X 10.5 (Leopards) libedit based readline module.
r884
fperez
Fix bug with 2.3 and readline; clean up.
r644 # the clear_history() function was only introduced in Python 2.4 and is
# actually optional in the readline API, so we must explicitly check for its
# existence. Some known platforms actually don't have it. This thread:
# http://mail.python.org/pipermail/python-dev/2003-August/037845.html
# has the original discussion.
if have_readline:
vivainio
merge all from 0.7.3 branch to trunk
r503 try:
vivainio
fixed rlineimpl to work properly with py2exed pyreadline
r671 _rl.clear_history
fperez
Fix bug with 2.3 and readline; clean up.
r644 except AttributeError:
def clear_history(): pass
Fernando Perez
Remove svn-style $Id marks from docstrings and Release imports....
r1853 _rl.clear_history = clear_history