##// END OF EJS Templates
Merge branch 'juliantaylor-multiline-history'...
Merge branch 'juliantaylor-multiline-history' Restore multiline history (on by default) as it worked in the 0.10.x series. A new configuration variable InteractiveShell.multiline_history can be set to control this behavior for users who prefer not to have it on. When True, cells spanning multiple lines will be saved in history as a single entry instead of one entry per line Closes gh-571.

File last commit:

r4989:a355a9f7
r5083:bf4b2a08 merge
Show More
ipython-get-history.py
38 lines | 1.1 KiB | text/x-python | PythonLexer
/ docs / examples / core / ipython-get-history.py
#!/usr/bin/env python
"""Extract a session from the IPython input history.
Usage:
ipython-get-history.py sessionnumber [outputfile]
If outputfile is not given, the relevant history is written to stdout. If
outputfile has a .py extension, the translated history (without IPython's
special syntax) will be extracted.
Example:
./ipython-get-history.py 57 record.ipy
This script is a simple demonstration of HistoryAccessor. It should be possible
to build much more flexible and powerful tools to browse and pull from the
history database.
"""
import sys
import codecs
from IPython.core.history import HistoryAccessor
session_number = int(sys.argv[1])
if len(sys.argv) > 2:
dest = open(sys.argv[2], "w")
raw = not sys.argv[2].endswith('.py')
else:
dest = sys.stdout
raw = True
dest.write("# coding: utf-8\n")
# Profiles other than 'default' can be specified here with a profile= argument:
hist = HistoryAccessor()
for session, lineno, cell in hist.get_range(session=session_number, raw=raw):
# To use this in Python 3, remove the .encode() here:
dest.write(cell.encode('utf-8') + '\n')