rlineimpl.py
42 lines
| 1.3 KiB
| text/x-python
|
PythonLexer
/ IPython / rlineimpl.py
vivainio
|
r503 | # -*- coding: utf-8 -*- | |
fperez
|
r644 | """ Imports and provides the 'correct' version of readline for the platform. | |
vivainio
|
r503 | ||
fperez
|
r644 | Readline is used throughout IPython as 'import IPython.rlineimpl as readline'. | |
vivainio
|
r503 | ||
fperez
|
r644 | In addition to normal readline stuff, this module provides have_readline | |
boolean and _outputfile variable used in genutils. | |||
vivainio
|
r503 | ||
$Id: Magic.py 1096 2006-01-28 20:08:02Z vivainio $""" | |||
import sys | |||
fperez
|
r644 | try: | |
from readline import * | |||
import readline as _rl | |||
have_readline = True | |||
except ImportError: | |||
vivainio
|
r671 | try: | |
from pyreadline import * | |||
import pyreadline as _rl | |||
have_readline = True | |||
except ImportError: | |||
have_readline = False | |||
vivainio
|
r503 | ||
fperez
|
r644 | if sys.platform == 'win32' and have_readline: | |
vivainio
|
r503 | try: | |
fperez
|
r644 | _outputfile=_rl.GetOutputFile() | |
vivainio
|
r671 | except AttributeError: | |
fperez
|
r644 | print "Failed GetOutputFile" | |
have_readline = False | |||
vivainio
|
r503 | ||
fperez
|
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
|
r503 | try: | |
vivainio
|
r671 | _rl.clear_history | |
fperez
|
r644 | except AttributeError: | |
def clear_history(): pass | |||
vivainio
|
r671 | _rl.clear_history = clear_history |