Show More
@@ -1,7 +1,7 b'' | |||
|
1 | 1 | # -*- coding: utf-8 -*- |
|
2 | 2 | """Magic functions for InteractiveShell. |
|
3 | 3 | |
|
4 |
$Id: Magic.py 10 |
|
|
4 | $Id: Magic.py 1090 2006-01-27 21:24:05Z vivainio $""" | |
|
5 | 5 | |
|
6 | 6 | #***************************************************************************** |
|
7 | 7 | # Copyright (C) 2001 Janko Hauser <jhauser@zscout.de> and |
@@ -2665,7 +2665,9 b' Defaulting color scheme to \'NoColor\'"""' | |||
|
2665 | 2665 | %store - Show list of all variables and their current values\\ |
|
2666 | 2666 | %store <var> - Store the *current* value of the variable to disk\\ |
|
2667 | 2667 | %store -d <var> - Remove the variable and its value from storage\\ |
|
2668 | %store -r - Remove all variables from storage | |
|
2668 | %store -r - Remove all variables from storage\\ | |
|
2669 | %store foo >a.txt - Store value of foo to new file a.txt\\ | |
|
2670 | %store foo >>a.txt - Append value of foo to file a.txt\\ | |
|
2669 | 2671 | |
|
2670 | 2672 | It should be noted that if you change the value of a variable, you |
|
2671 | 2673 | need to %store it again if you want to persist the new value. |
@@ -2674,7 +2676,9 b' Defaulting color scheme to \'NoColor\'"""' | |||
|
2674 | 2676 | python types can be safely %stored. |
|
2675 | 2677 | """ |
|
2676 | 2678 | |
|
2677 |
opts,args = self.parse_options(parameter_s,'dr',mode=' |
|
|
2679 | opts,argsl = self.parse_options(parameter_s,'dr',mode='string') | |
|
2680 | args = argsl.split(None,1) | |
|
2681 | ip = self.getapi() | |
|
2678 | 2682 | # delete |
|
2679 | 2683 | if opts.has_key('d'): |
|
2680 | 2684 | try: |
@@ -2711,6 +2715,29 b' Defaulting color scheme to \'NoColor\'"""' | |||
|
2711 | 2715 | |
|
2712 | 2716 | # default action - store the variable |
|
2713 | 2717 | else: |
|
2718 | # %store foo >file.txt or >>file.txt | |
|
2719 | if len(args) > 1 and args[1].startswith('>'): | |
|
2720 | fnam = os.path.expanduser(args[1].lstrip('>').lstrip()) | |
|
2721 | if args[1].startswith('>>'): | |
|
2722 | fil = open(fnam,'a') | |
|
2723 | else: | |
|
2724 | fil = open(fnam,'w') | |
|
2725 | obj = ip.ev(args[0]) | |
|
2726 | print "Writing '%s' (%s) to file '%s'." % (args[0], | |
|
2727 | obj.__class__.__name__, fnam) | |
|
2728 | ||
|
2729 | ||
|
2730 | if not isinstance (obj,basestring): | |
|
2731 | pprint(obj,fil) | |
|
2732 | else: | |
|
2733 | fil.write(obj) | |
|
2734 | if not obj.endswith('\n'): | |
|
2735 | fil.write('\n') | |
|
2736 | ||
|
2737 | fil.close() | |
|
2738 | return | |
|
2739 | ||
|
2740 | # %store foo | |
|
2714 | 2741 | obj = self.shell.user_ns[args[0] ] |
|
2715 | 2742 | if isinstance(inspect.getmodule(obj), FakeModule): |
|
2716 | 2743 | print textwrap.dedent("""\ |
@@ -2722,7 +2749,7 b' Defaulting color scheme to \'NoColor\'"""' | |||
|
2722 | 2749 | return |
|
2723 | 2750 | pickled = pickle.dumps(obj) |
|
2724 | 2751 | self.shell.persist[ 'S:' + args[0] ] = pickled |
|
2725 | print "Stored '%s' (%d bytes)" % (args[0], len(pickled)) | |
|
2752 | print "Stored '%s' (%s, %d bytes)" % (args[0], obj.__class__.__name__,len(pickled)) | |
|
2726 | 2753 | |
|
2727 | 2754 | def magic_bookmark(self, parameter_s=''): |
|
2728 | 2755 | """Manage IPython's bookmark system. |
@@ -2824,7 +2851,7 b' Defaulting color scheme to \'NoColor\'"""' | |||
|
2824 | 2851 | if l ==sentinel: |
|
2825 | 2852 | break |
|
2826 | 2853 | lines.append(l) |
|
2827 | block = "\n".join(lines) | |
|
2854 | block = "\n".join(lines) + '\n' | |
|
2828 | 2855 | #print "block:\n",block |
|
2829 | 2856 | if not par: |
|
2830 | 2857 | b = textwrap.dedent(block) |
@@ -6,7 +6,7 b' Requires Python 2.3 or newer.' | |||
|
6 | 6 | |
|
7 | 7 | This file contains all the classes and helper functions specific to IPython. |
|
8 | 8 | |
|
9 |
$Id: iplib.py 10 |
|
|
9 | $Id: iplib.py 1090 2006-01-27 21:24:05Z vivainio $ | |
|
10 | 10 | """ |
|
11 | 11 | |
|
12 | 12 | #***************************************************************************** |
@@ -2097,6 +2097,18 b' want to merge them back into the new files.""" % locals()' | |||
|
2097 | 2097 | # If the code compiles ok, we should handle it normally |
|
2098 | 2098 | return self.handle_normal(line,continue_prompt) |
|
2099 | 2099 | |
|
2100 | def getapi(self): | |
|
2101 | """ Get an IPApi object for this shell instance | |
|
2102 | ||
|
2103 | Getting an IPApi object is always preferable to accessing the shell | |
|
2104 | directly, but this holds true especially for extensions. | |
|
2105 | ||
|
2106 | It should always be possible to implement an extension with IPApi | |
|
2107 | alone. If not, contact maintainer to request an addition. | |
|
2108 | ||
|
2109 | """ | |
|
2110 | return self.api | |
|
2111 | ||
|
2100 | 2112 | def handle_emacs(self,line,continue_prompt=None, |
|
2101 | 2113 | pre=None,iFun=None,theRest=None): |
|
2102 | 2114 | """Handle input lines marked by python-mode.""" |
@@ -14,6 +14,13 b'' | |||
|
14 | 14 | applies for magics, 'var = %alias' assigns alias list to var. |
|
15 | 15 | |
|
16 | 16 | * ipapi.py: added meta() for accessing extension-usable data store. |
|
17 | ||
|
18 | * iplib.py: added InteractiveShell.getapi(). New magics should be | |
|
19 | written doing self.getapi() instead of using the shell directly. | |
|
20 | ||
|
21 | * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and | |
|
22 | %store foo >> ~/myfoo.txt to store variables to files (in clean | |
|
23 | textual form, not a restorable pickle). | |
|
17 | 24 | |
|
18 | 25 | 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu> |
|
19 | 26 |
General Comments 0
You need to be logged in to leave comments.
Login now