<div dir="ltr"><div>Hi everyone,</div><div><br></div><div>First, my compliments to the developers of IPython, a wonderful program that I feel is much underused. </div><div><br></div><div>In my field of science (protein modelling) it is mostly about large software packages consisting of a cloud of command-line tools. This means that everyone (myself included) uses just the bash shell for interactive work. I consider this situation not ideal at all, and I think that IPython has the potential to provide something much better. </div>
<div><br></div><div>However, command-line tool clouds are today's reality, and Python tools (numpy, scipy, matplotlib) just live in another universe until they are wrapped as a command-line tool. I feel that IPython needs to provide a better Python <=> shell interface than it does now. In particular, I have the following problems with it:</div>
<div><br></div><div>1. Python variable expansion within shell commands does not work seamlessly, especially if the command-line tool expects a file or stream.</div><div>2. Awk one-liners are mostly broken when entered in IPython.</div>
<div>3. Alias magic is incompatible with shell execution. This means that "%ls" is not the same as "!ls" (very confusing).</div><div>4. Shell execution also captures stderr</div><div><br></div><div>I don't like to give negative criticism, especially since I am fairly new to IPython. So I have coded into IPython a possible solution that solves my problems. Hopefully it will be useful to the community.</div>
<div><br></div><div>The code branch is at <a href="https://github.com/sjdv1982/ipython.git">https://github.com/sjdv1982/ipython.git</a></div><div>A detailed proposal is at</div><div><a href="https://raw.githubusercontent.com/sjdv1982/ipython/master/docs/source/whatsnew/pr/incompat-bangmode.rst">https://raw.githubusercontent.com/sjdv1982/ipython/master/docs/source/whatsnew/pr/incompat-bangmode.rst</a></div>
<div>All of the examples in the proposal are working with the code branch.</div><div><br></div><div>cheers</div><div><br></div><div>Sjoerd</div><div><br></div></div>