[IPython-dev] Re: [IPython-user] Commits to CVS, fixes, and shell access (RFC)
fperez at colorado.edu
Fri Apr 2 00:37:42 CST 2004
> This sounds great--similar to what I did for my "grep" shell access,
> but generalized. (I didn't look into storing the results in "hidden"
> variables, but that looks like a good idea also.)
These variables aren't really that 'hidden': In[N] and Out[N] are always
there for you, and hopefully the names of the prompts hint at their existence.
The magic stuff is that _N==Out[N], and _iN==In[N], and _,__ and ___ hold
always Out[-1], Out[-2] and Out[-3]. When using ipython for scientific work,
this kind of caching is incredibly useful.
> I've a question though. My grep shell extension would capture
> stdout and stderr separately, and wouldn't return stderr, but
> just printed it. It would then return whatever the command
> *had* sent to stdout (or None if nothing). What does @sc do
> for this?
Done. I've uploaded changes so that now stderr is separately handled:
In : d
lrwxrwxrwx 1 fperez 3 Apr 1 21:49 bar -> foo ### broken link
-rw-r--r-- 1 fperez 124 Oct 6 13:25 die.py
-rwxr-xr-x 1 fperez 9988 Jul 7 2003 divc*
-rwxr-xr-x 1 fperez 11671 Jul 7 2003 divf*
In : !!grep ff *
grep: bar: No such file or directory
Out: ['Binary file divc matches', 'Binary file divf matches']
Note stderr message printed to console before the output is returned.
Thanks again for the feedback. Hopefully this will provide some relief for
those interested in ipython having better system integration.
More information about the IPython-dev