Show More
@@ -0,0 +1,1 b'' | |||||
|
1 | """ Shadow namespace """ No newline at end of file |
@@ -6,7 +6,7 b' Uses syntax highlighting for presenting the various information elements.' | |||||
6 | Similar in spirit to the inspect module, but all calls take a name argument to |
|
6 | Similar in spirit to the inspect module, but all calls take a name argument to | |
7 | reference the name under which an object is being read. |
|
7 | reference the name under which an object is being read. | |
8 |
|
8 | |||
9 | $Id: OInspect.py 1850 2006-10-28 19:48:13Z fptest $ |
|
9 | $Id: OInspect.py 2463 2007-06-27 22:51:16Z vivainio $ | |
10 | """ |
|
10 | """ | |
11 |
|
11 | |||
12 | #***************************************************************************** |
|
12 | #***************************************************************************** | |
@@ -337,7 +337,10 b' class Inspector:' | |||||
337 | ospace = info.namespace |
|
337 | ospace = info.namespace | |
338 | # Get docstring, special-casing aliases: |
|
338 | # Get docstring, special-casing aliases: | |
339 | if isalias: |
|
339 | if isalias: | |
340 | ds = "Alias to the system command:\n %s" % obj[1] |
|
340 | if not callable(obj): | |
|
341 | ds = "Alias to the system command:\n %s" % obj[1] | |||
|
342 | else: | |||
|
343 | ds = "Alias to " + str(obj) | |||
341 | else: |
|
344 | else: | |
342 | ds = getdoc(obj) |
|
345 | ds = getdoc(obj) | |
343 | if ds is None: |
|
346 | if ds is None: |
@@ -335,6 +335,12 b' class IPApi:' | |||||
335 | Creates a new alias named 'bb' in ipython user namespace |
|
335 | Creates a new alias named 'bb' in ipython user namespace | |
336 | """ |
|
336 | """ | |
337 |
|
337 | |||
|
338 | if callable(cmd): | |||
|
339 | self.IP.alias_table[name] = cmd | |||
|
340 | import IPython.shawodns | |||
|
341 | setattr(IPython.shadowns, name,cmd) | |||
|
342 | return | |||
|
343 | ||||
338 |
|
344 | |||
339 | nargs = cmd.count('%s') |
|
345 | nargs = cmd.count('%s') | |
340 | if nargs>0 and cmd.find('%l')>=0: |
|
346 | if nargs>0 and cmd.find('%l')>=0: |
@@ -6,7 +6,7 b' Requires Python 2.3 or newer.' | |||||
6 |
|
6 | |||
7 | This file contains all the classes and helper functions specific to IPython. |
|
7 | This file contains all the classes and helper functions specific to IPython. | |
8 |
|
8 | |||
9 |
$Id: iplib.py 24 |
|
9 | $Id: iplib.py 2463 2007-06-27 22:51:16Z vivainio $ | |
10 | """ |
|
10 | """ | |
11 |
|
11 | |||
12 | #***************************************************************************** |
|
12 | #***************************************************************************** | |
@@ -76,7 +76,7 b' from IPython.strdispatch import StrDispatch' | |||||
76 | import IPython.ipapi |
|
76 | import IPython.ipapi | |
77 | import IPython.history |
|
77 | import IPython.history | |
78 | import IPython.prefilter as prefilter |
|
78 | import IPython.prefilter as prefilter | |
79 |
|
79 | import IPython.shadowns | ||
80 | # Globals |
|
80 | # Globals | |
81 |
|
81 | |||
82 | # store the builtin raw_input globally, and use this always, in case user code |
|
82 | # store the builtin raw_input globally, and use this always, in case user code | |
@@ -379,6 +379,7 b' class InteractiveShell(object,Magic):' | |||||
379 | self.user_ns['In'] = self.input_hist |
|
379 | self.user_ns['In'] = self.input_hist | |
380 | self.user_ns['Out'] = self.output_hist |
|
380 | self.user_ns['Out'] = self.output_hist | |
381 |
|
381 | |||
|
382 | self.user_ns['_sh'] = IPython.shadowns | |||
382 | # Object variable to store code object waiting execution. This is |
|
383 | # Object variable to store code object waiting execution. This is | |
383 | # used mainly by the multithreaded shells, but it can come in handy in |
|
384 | # used mainly by the multithreaded shells, but it can come in handy in | |
384 | # other situations. No need to use a Queue here, since it's a single |
|
385 | # other situations. No need to use a Queue here, since it's a single | |
@@ -2119,13 +2120,18 b' want to merge them back into the new files.""" % locals()' | |||||
2119 | return line |
|
2120 | return line | |
2120 |
|
2121 | |||
2121 | def handle_alias(self,line_info): |
|
2122 | def handle_alias(self,line_info): | |
2122 |
"""Handle alias input lines. """ |
|
2123 | """Handle alias input lines. """ | |
2123 |
t |
|
2124 | tgt = self.alias_table[line_info.iFun] | |
|
2125 | # print "=>",tgt #dbg | |||
|
2126 | if callable(tgt): | |||
|
2127 | line_out = "_sh." + line_info.iFun + '(r"""' + line_info.theRest + '""")' | |||
|
2128 | else: | |||
|
2129 | transformed = self.expand_aliases(line_info.iFun,line_info.theRest) | |||
2124 |
|
2130 | |||
2125 | # pre is needed, because it carries the leading whitespace. Otherwise |
|
2131 | # pre is needed, because it carries the leading whitespace. Otherwise | |
2126 | # aliases won't work in indented sections. |
|
2132 | # aliases won't work in indented sections. | |
2127 | line_out = '%s_ip.system(%s)' % (line_info.preWhitespace, |
|
2133 | line_out = '%s_ip.system(%s)' % (line_info.preWhitespace, | |
2128 | make_quoted_expr( transformed )) |
|
2134 | make_quoted_expr( transformed )) | |
2129 |
|
2135 | |||
2130 | self.log(line_info.line,line_out,line_info.continue_prompt) |
|
2136 | self.log(line_info.line,line_out,line_info.continue_prompt) | |
2131 | #print 'line out:',line_out # dbg |
|
2137 | #print 'line out:',line_out # dbg |
@@ -1,3 +1,17 b'' | |||||
|
1 | 2007-06-28 Ville Vainio <vivainio@gmail.com> | |||
|
2 | ||||
|
3 | * shadowns.py, iplib.py, ipapi.py, OInspect.py: | |||
|
4 | Implement "shadow" namespace, and callable aliases that reside there. | |||
|
5 | Use them by: | |||
|
6 | ||||
|
7 | _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc | |||
|
8 | ||||
|
9 | foo hello world | |||
|
10 | (gets translated to:) | |||
|
11 | _sh.foo(r"""hello world""") | |||
|
12 | ||||
|
13 | In practice, this kind of alias can take the role of a magic function | |||
|
14 | ||||
1 | 2007-06-14 Ville Vainio <vivainio@gmail.com> |
|
15 | 2007-06-14 Ville Vainio <vivainio@gmail.com> | |
2 |
|
16 | |||
3 | * iplib.py (handle_auto): Try to use ascii for printing "--->" |
|
17 | * iplib.py (handle_auto): Try to use ascii for printing "--->" |
General Comments 0
You need to be logged in to leave comments.
Login now