##// END OF EJS Templates
Merge pull request #3162 from ivanov/output-stream-kwarg...
Merge pull request #3162 from ivanov/output-stream-kwarg adding stream kwarg to current.new_output This was missing, and made unnecessarily clunky to create output cells of stream type using the nbformat API. Before this commit, you had to do something like from IPython.nbformat import current as c output = c.new_output('stream', the_text) output['stream'] = 'stdout' after this commit from IPython.nbformat import current as c output = c.new_output('stream', the_text, stream='stdout') and actually, that stream= argument defaults to 'stdout' if it isn't given. I modified a test that will break if this functionality is ever removed.

File last commit:

r2267:928c921b
r10190:c3b429bd merge
Show More
ipy_exportdb.py
77 lines | 2.0 KiB | text/x-python | PythonLexer
from IPython.core import ipapi
from IPython.core import macro
ip = ipapi.get()
import os,pprint
def export(filename = None):
lines = ['import IPython.core.ipapi', 'ip = IPython.core.ipapi.get()','']
vars = ip.db.keys('autorestore/*')
vars.sort()
varstomove = []
get = ip.db.get
macros = []
variables = []
for var in vars:
k = os.path.basename(var)
v = get(var)
if k.startswith('_'):
continue
if isinstance(v, macro.Macro):
macros.append((k,v))
if type(v) in [int, str, float]:
variables.append((k,v))
if macros:
lines.extend(['# === Macros ===' ,''])
for k,v in macros:
lines.append("ip.defmacro('%s'," % k)
for line in v.value.splitlines():
lines.append(' ' + repr(line+'\n'))
lines.extend([')', ''])
if variables:
lines.extend(['','# === Variables ===',''])
for k,v in variables:
varstomove.append(k)
lines.append('%s = %s' % (k,repr(v)))
lines.append('ip.push("%s")' % (' '.join(varstomove)))
bkms = ip.db.get('bookmarks',{})
if bkms:
lines.extend(['','# === Bookmarks ===',''])
lines.append("ip.db['bookmarks'] = %s " % pprint.pformat(bkms, indent = 2) )
aliases = ip.db.get('stored_aliases', {} )
if aliases:
lines.extend(['','# === Alias definitions ===',''])
for k,v in aliases.items():
try:
lines.append("ip.define_alias('%s', %s)" % (k, repr(v[1])))
except (AttributeError, TypeError):
pass
env = ip.db.get('stored_env')
if env:
lines.extend(['','# === Stored env vars ===',''])
lines.append("ip.db['stored_env'] = %s " % pprint.pformat(env, indent = 2) )
out = '\n'.join(lines)
if filename:
open(filename,'w').write(out)
else:
print out