[IPython-User] Advice on using a prefilter

Aaron Meurer asmeurer@gmail....
Tue Aug 7 15:35:39 CDT 2012


Yeah, I came to the same conclusion (see my previous message).  The
API really needs to give the user the whole cell.  The line-by-line
API should be deprecated (or removed; I don't know how you guys tend
to handle such things).  The same thing is easy enough to get from the
cell with .split("\n") if you really want it (and the user should
probably be discouraged from doing so anyway, because the chances that
you will get things wrong with line continuations is pretty high).

In the meanwhile, any recommendations on how I should proceed?  I see
myself with the following options:

- Use the existing prefilter API, and live with the fact that
multiline statements won't be changed.

- Monkey-patch run_cell.  It's obviously not clean (to say the least),
but it should fulfill my needs completely.

- Don't do anything; wait until you guys have a better API to work with.

Any suggestions?  Is monkey-patching run_cell going to be as evil as it sounds?

Aaron Meurer

On Tue, Aug 7, 2012 at 5:14 AM, Thomas Kluyver <takowl@gmail.com> wrote:
> On 7 August 2012 05:47, Aaron Meurer <asmeurer@gmail.com> wrote:
>>> Yes, that would be due to this bit of code:
>>> https://github.com/ipython/ipython/blob/master/IPython/core/interactiveshell.py#L2593
>>
>> So can this if statement be removed?
>
> Not trivially. The difficulty is that the context from previous lines
> might affect whether something should be transformed - e.g. we mustn't
> transform a line that's inside a string. And we need to be careful
> about things like this:
>
> In [1]: 5 \
>    ...: % 2
> Out[1]: 1
>
> Again, apologies that this API hasn't been better maintained.
>
> Best wishes,
> Thomas
> _______________________________________________
> IPython-User mailing list
> IPython-User@scipy.org
> http://mail.scipy.org/mailman/listinfo/ipython-user


More information about the IPython-User mailing list