Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Add example script for extracting history from the database.

  • Loading branch information...
commit a355a9f76add5b7b91b31b9e8b07c4f0fbc9ce3a 1 parent 54c5f3f
Thomas Kluyver authored
Showing with 38 additions and 0 deletions.
  1. +38 −0 docs/examples/core/ipython-get-history.py
38 docs/examples/core/ipython-get-history.py
View
@@ -0,0 +1,38 @@
+#!/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')
Please sign in to comment.
Something went wrong with that request. Please try again.