Skip to content

Cookbook ipy exportdb

Bradley M. Froehle edited this page Jan 10, 2013 · 1 revision

Sometimes you have created a nifty macro you don't want to lose, or want to distribute to your friends. You can use ipy_exportdb.py extension for this.

Let's create a macro and an alias:

[d:/ipython]|13> a = 12
[d:/ipython]|14> print "a is ",a
a is  12
[d:/ipython]|15> macro foo 13-14
Macro `foo` created. To execute, type its name (without quotes).
Macro contents:
a = 12
print "a is ",a

[d:/ipython]|16> store foo
Stored 'foo' (Macro)
[d:/ipython]|17> alias bar hubba
[d:/ipython]|18> store bar
Alias stored: bar (0, 'hubba')

Now, we have it in our IPython database, but it's not really easy to distribute them to others. You can do this with ipy_exportdb:

[d:/ipython]|19> import ipy_exportdb
[d:/ipython]|20> ipy_exportdb.export

This prints out the "export file" (which is legal python), the relevant portions of which are:

<syntaxhighlight> import IPython.ipapi ip = IPython.ipapi.get()
  1. === Macros ===
... ip.defmacro('foo', u'a = 12\n' u'print "a is ",a\n' ) ...
  1. === Alias definitions ===
... ip.defalias('bar', 'hubba') ... </syntaxhighlight>

You can also provide the output file name to exportdb().

The resulting file can be imported normally, e.g. in ipy_user_conf.py.

The following things are exported: macros, variables (basic data types only, i.e. no pickling), bookmarks, aliases, stored %env modifications.

Clone this wiki locally