##// END OF EJS Templates
More work on componentizing everything....
More work on componentizing everything. I have also done some work on component: * componenets whose __init__ method fails are now unregistered. * Added a masquerade_as function to enable components to masquerade as one another. This is really a cheap and informal way of doing parts of an interface system.

File last commit:

r2044:cc9fa6af
r2243:5b86c0c8
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