Commit b98a8ba1 authored by Skip Montanaro's avatar Skip Montanaro

Add example that uses readline.readline().

parent 0dc23101
......@@ -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}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment