<br><br><div class="gmail_quote">On Tue, Aug 7, 2012 at 1:55 PM, Thomas Kluyver <span dir="ltr">&lt;<a href="mailto:takowl@gmail.com" target="_blank">takowl@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="im">On 7 August 2012 21:35, Aaron Meurer &lt;<a href="mailto:asmeurer@gmail.com">asmeurer@gmail.com</a>&gt; wrote:<br>
&gt; Is monkey-patching run_cell going to be as evil as it sounds?<br>
<br>
</div>It&#39;s going to be more evil than it sounds. run_cell is pretty much the<br>
core function of IPython, and we really don&#39;t want people<br>
monkeypatching it.<br></blockquote><div><br></div><div>The following in one of my startup files:</div><div><br></div><div>shell = get_ipython()</div><div>old_run_cell = shell.run_cell</div><div><br></div><div>def transform(cell):</div>

<div>    return u&#39;\n&#39;.join([cell, &#39;print &quot;hello!&quot;&#39;])</div><div><br></div><div>def new_run_cell(cell, *args, **kwargs):</div><div>    new_cell = transform(cell)</div><div>    return old_run_cell(new_cell, *args, **kwargs)</div>

<div><br></div><div>shell.run_cell = new_run_cell</div><div><br></div><div>Lets me trivially do transforms to complete cells, without actually changing anything *inside* run_cell.  This doesn&#39;t seem too bad to me, at least as a temporary measure while IPython gets itself an official API for cell-level transforms.</div>

<div><br></div><div>If Prefilter/InputSplitter were not already on Thomas&#39; chopping block, then I would actually propose that we add a simple hook that&#39;s a list of callables to run on the cell at the top of run_cell. But since Thomas already plans to clean up the relevant APIs, it makes more sense to include this as one of the use cases to consider while writing the new code.</div>

<div><br></div><div>-MinRK</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I think for now your best bet is to use the existing prefilter API,<br>
and accept that it doesn&#39;t work for multiline cells yet.<br>
<br>
Issue 1491 is about this. I&#39;ve just bumped the priority to high,<br>
milestoned it for the next release and assigned myself. I&#39;ll do my<br>
utmost to look into this in the next few days.<br>
<br>
<a href="https://github.com/ipython/ipython/issues/1491" target="_blank">https://github.com/ipython/ipython/issues/1491</a><br>
<br>
Thanks,<br>
<div class="HOEnZb"><div class="h5">Thomas<br>
_______________________________________________<br>
IPython-User mailing list<br>
<a href="mailto:IPython-User@scipy.org">IPython-User@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/ipython-user" target="_blank">http://mail.scipy.org/mailman/listinfo/ipython-user</a><br>
</div></div></blockquote></div><br>