[IPython-dev] Feedback request on a new feature
Fernando Perez
fperez at colorado.edu
Mon Dec 22 01:22:20 EST 2003
Hi all,
I'd like to solicit a bit of feedback from the community on a new feature. I
often get asked about a quick way to capture shell output to a python variable
for further manipulation. Granted, you can always do
In [7]: import commands
In [8]: a=commands.getoutput('ls C*.py')
In [9]: print a
ColorANSI.py
ConfigLoader.py
CrashHandler.py
But since ipython is after all a shell which tries to let you do a lot with
very little typing, having a builtin shortcut for this doesn't sound like an
unreasonable request to me. So as a test I coded up the ability to do the
following:
In [10]: $b=ls C*.py
--- IPython variable set --- b:
ColorANSI.py
ConfigLoader.py
CrashHandler.py
the proposed syntax is:
$var_name=shell command
I'd like some feedback on whether people like the idea, both in principle and
in its current (very much a prototype) implementation. Some possible
viewpoints I could see people making, but for which I'd like to know whether
anyone would _actually_ make them:
- It's bloat: anyone who needs it enough can easily code it.
- It's not bloat, but a different syntax would be better, like
!!b=ls *py
This subsumes it into the already existing shell syntax without introducing
yet another special character. At the rate things are going, ipython is
making python look like perl!
- I like it, just leave out the stupid comment, people know what they did.
Just print the output like a shell would.
- Don't even print the output, it should just behave like getoutput(). People
can print out the variable if they need it (esp. useful if the output is
potentially huge, but you want it trapped for processing).
- You should split the output and return a list, since that's what people will
want most of the time.
- ... more?
Anyway, as you can see, I think it may be useful to many, but I'm a bit
concerned about ugliness and implementation specifics. Since it's something
people have asked for, I'd like some feedback.
I've put the code into CVS so you can play with it and tell me what you think.
I can later just back it off if there's consensus that it was just a stupid
idea.
I'd also like to know of anything else you may consider necessary for the next
release. At this point I have pretty much everything ready and I'd like to
move forward with releasing the code relatively soon. The only things
currently remaining in my mind are:
1. A gettext() related bug which was reported on the tracker. I'm still
trying to clarify if that one is really all that different in ipython from
normal python.
2. Documenting a bit in the manual Gary Bishop's contributions for Windows users.
3. ???
Let me know of anything you think is important, because after this release
I'll probably start, with Jeff Collin's help, tearing ipython apart for a big
internal cleanup. This will mean no more development (except for critical
bugfixes) done to the current branch.
Thanks, and to all of you who celebrate, Happy Holidays!
Regards,
f.
More information about the IPython-dev
mailing list