Show More
@@ -0,0 +1,8 b'' | |||||
|
1 | .. _extensions_storemagic: | |||
|
2 | ||||
|
3 | ========== | |||
|
4 | storemagic | |||
|
5 | ========== | |||
|
6 | ||||
|
7 | .. automodule:: IPython.extensions.storemagic | |||
|
8 | :members: magic_store |
@@ -2000,14 +2000,16 b' class InteractiveShell(SingletonConfigurable, Magic):' | |||||
2000 |
|
2000 | |||
2001 | def define_magic(self, magicname, func): |
|
2001 | def define_magic(self, magicname, func): | |
2002 | """Expose own function as magic function for ipython |
|
2002 | """Expose own function as magic function for ipython | |
|
2003 | ||||
|
2004 | Example:: | |||
2003 |
|
2005 | |||
2004 | def foo_impl(self,parameter_s=''): |
|
2006 | def foo_impl(self,parameter_s=''): | |
2005 | 'My very own magic!. (Use docstrings, IPython reads them).' |
|
2007 | 'My very own magic!. (Use docstrings, IPython reads them).' | |
2006 | print 'Magic function. Passed parameter is between < >:' |
|
2008 | print 'Magic function. Passed parameter is between < >:' | |
2007 | print '<%s>' % parameter_s |
|
2009 | print '<%s>' % parameter_s | |
2008 | print 'The self object is:',self |
|
2010 | print 'The self object is:', self | |
2009 |
|
2011 | |||
2010 |
|
|
2012 | ip.define_magic('foo',foo_impl) | |
2011 | """ |
|
2013 | """ | |
2012 | im = types.MethodType(func,self) |
|
2014 | im = types.MethodType(func,self) | |
2013 | old = getattr(self, "magic_" + magicname, None) |
|
2015 | old = getattr(self, "magic_" + magicname, None) |
@@ -2,16 +2,18 b'' | |||||
2 | """ |
|
2 | """ | |
3 | %store magic for lightweight persistence. |
|
3 | %store magic for lightweight persistence. | |
4 |
|
4 | |||
5 |
Stores variables, aliases |
|
5 | Stores variables, aliases and macros in IPython's database. Stored values will | |
|
6 | be automatically restored whenever the extension is loaded. | |||
6 |
|
7 | |||
7 |
To enable this functionality, |
|
8 | To enable this functionality, list it in your default profile | |
|
9 | `ipython_config.py` file:: | |||
8 |
|
10 | |||
9 | %load_ext storemagic |
|
11 | c.InteractiveShellApp.extensions = ['storemagic'] | |
10 |
|
12 | |||
11 | in your IPython session. If you always want it enabled, you can list it in |
|
13 | Or to use it temporarily, run this in your IPython session:: | |
12 | your default profile `ipython_config.py` file:: |
|
14 | ||
|
15 | %load_ext storemagic | |||
13 |
|
16 | |||
14 | c.InteractiveShellApp.extensions = ['storemagic'] |
|
|||
15 | """ |
|
17 | """ | |
16 |
|
18 | |||
17 | from IPython.core.error import TryNext, UsageError |
|
19 | from IPython.core.error import TryNext, UsageError | |
@@ -54,34 +56,33 b' def restore_data(ip):' | |||||
54 | def magic_store(self, parameter_s=''): |
|
56 | def magic_store(self, parameter_s=''): | |
55 | """Lightweight persistence for python variables. |
|
57 | """Lightweight persistence for python variables. | |
56 |
|
58 | |||
57 | Example: |
|
59 | Example:: | |
58 |
|
||||
59 | ville@badger[~]|1> A = ['hello',10,'world']\\ |
|
|||
60 | ville@badger[~]|2> %store A\\ |
|
|||
61 | ville@badger[~]|3> Exit |
|
|||
62 |
|
60 | |||
63 | (IPython session is closed and started again...) |
|
61 | In [1]: l = ['hello',10,'world'] | |
|
62 | In [2]: %store l | |||
|
63 | In [3]: exit | |||
64 |
|
64 | |||
65 | ville@badger:~$ ipython -p pysh\\ |
|
65 | (IPython session is closed and started again...) | |
66 | ville@badger[~]|1> print A |
|
|||
67 |
|
66 | |||
68 | ['hello', 10, 'world'] |
|
67 | ville@badger:~$ ipython | |
|
68 | In [1]: l | |||
|
69 | Out[1]: ['hello', 10, 'world'] | |||
69 |
|
70 | |||
70 | Usage: |
|
71 | Usage: | |
71 |
|
72 | |||
72 |
%store - Show list of all variables and their current values |
|
73 | * ``%store`` - Show list of all variables and their current values | |
73 |
%store |
|
74 | * ``%store spam`` - Store the *current* value of the variable spam to disk | |
74 |
%store -d |
|
75 | * ``%store -d spam`` - Remove the variable and its value from storage | |
75 |
%store -z - Remove all variables from storage |
|
76 | * ``%store -z`` - Remove all variables from storage | |
76 |
%store -r - Refresh all variables from store (delete current vals) |
|
77 | * ``%store -r`` - Refresh all variables from store (delete current vals) | |
77 |
%store foo >a.txt - Store value of foo to new file a.txt |
|
78 | * ``%store foo >a.txt`` - Store value of foo to new file a.txt | |
78 |
%store foo >>a.txt - Append value of foo to file a.txt |
|
79 | * ``%store foo >>a.txt`` - Append value of foo to file a.txt | |
79 |
|
80 | |||
80 | It should be noted that if you change the value of a variable, you |
|
81 | It should be noted that if you change the value of a variable, you | |
81 | need to %store it again if you want to persist the new value. |
|
82 | need to %store it again if you want to persist the new value. | |
82 |
|
83 | |||
83 | Note also that the variables will need to be pickleable; most basic |
|
84 | Note also that the variables will need to be pickleable; most basic | |
84 | python types can be safely %stored. |
|
85 | python types can be safely %store'd. | |
85 |
|
86 | |||
86 | Also aliases can be %store'd across sessions. |
|
87 | Also aliases can be %store'd across sessions. | |
87 | """ |
|
88 | """ |
@@ -29,6 +29,10 b' The :func:`load_ipython_extension` will be called again is you load or reload' | |||||
29 | the extension again. It is up to the extension author to add code to manage |
|
29 | the extension again. It is up to the extension author to add code to manage | |
30 | that. |
|
30 | that. | |
31 |
|
31 | |||
|
32 | Useful :class:`InteractiveShell` methods include :meth:`~IPython.core.interactiveshell.InteractiveShell.define_magic`, | |||
|
33 | :meth:`~IPython.core.interactiveshell.InteractiveShell.push` (to add variables to the user namespace) and | |||
|
34 | :meth:`~IPython.core.interactiveshell.InteractiveShell.drop_by_id` (to remove variables on unloading). | |||
|
35 | ||||
32 | You can put your extension modules anywhere you want, as long as they can be |
|
36 | You can put your extension modules anywhere you want, as long as they can be | |
33 | imported by Python's standard import mechanism. However, to make it easy to |
|
37 | imported by Python's standard import mechanism. However, to make it easy to | |
34 | write extensions, you can also put your extensions in |
|
38 | write extensions, you can also put your extensions in | |
@@ -68,4 +72,5 b' Extensions bundled with IPython' | |||||
68 |
|
72 | |||
69 | autoreload |
|
73 | autoreload | |
70 | parallelmagic |
|
74 | parallelmagic | |
|
75 | storemagic | |||
71 | sympyprinting |
|
76 | sympyprinting |
@@ -62,7 +62,7 b' New features' | |||||
62 | Terminal frontend by default (:ghpull:`838`). |
|
62 | Terminal frontend by default (:ghpull:`838`). | |
63 |
|
63 | |||
64 | * **%store**: The ``%store`` magic from earlier versions has been updated and |
|
64 | * **%store**: The ``%store`` magic from earlier versions has been updated and | |
65 |
placed in an extension, |
|
65 | placed in an extension, :ref:`extensions_storemagic`. Add 'storemagic' to ``c.InteractiveShellApp.extensions`` | |
66 | in ipython_config.py to enable it (:ghpull:`1029`). |
|
66 | in ipython_config.py to enable it (:ghpull:`1029`). | |
67 |
|
67 | |||
68 |
|
68 |
General Comments 0
You need to be logged in to leave comments.
Login now