Add example that uses readline.readline().

This commit is contained in:
Skip Montanaro 2004-05-23 19:06:41 +00:00
parent 0dc23101a0
commit b98a8ba14d
1 changed files with 33 additions and 0 deletions

View File

@ -159,3 +159,36 @@ atexit.register(readline.write_history_file, histfile)
del os, histfile
\end{verbatim}
The following example extends the \class{code.InteractiveConsole} class to
support command line editing and history save/restore.
\begin{verbatim}
import code
import readline
import atexit
import os
class HistoryConsole(code.InteractiveConsole):
def __init__(self, locals=None, filename="<console>",
histfile=os.path.expanduser("~/.console-history")):
code.InteractiveConsole.__init__(self)
self.init_history(histfile)
def init_history(self, histfile):
readline.parse_and_bind("tab: complete")
if hasattr(readline, "read_history_file"):
try:
readline.read_history_file(histfile)
except IOError:
pass
atexit.register(self.save_history, histfile)
def raw_input(self, prompt=""):
line = readline.readline(prompt)
if line:
readline.add_history(line)
return line
def save_history(self, histfile):
readline.write_history_file(histfile)
\end{verbatim}