[IPython-user] recalling indented blocks -- strange bug

Fernando Perez fperez.net@gmail....
Sun Jan 10 21:34:03 CST 2010


On Sun, Jan 10, 2010 at 7:04 PM, John Hunter <jdh2358@gmail.com> wrote:
> I am having a surprising problem on ubuntu karmic (9.10) 32bit using
> ipython 0.10 (same in the development branch BTW)   In the session
> below, I type::
>
> for i in  range(10):
>    print i
>
> relying on ipython to autoindent the print line for me -- this works
> fine.  But if I then "up arrow" to recall the entire "for" block, the
> block execution fails with an indentation error.  Something about
> recalling the block from history is causing it to lose the proper
> indentation.  This is something I do a lot (on other machines) and
> have not seen this so it may be platform/version specific.

It's this stupid problem:

https://bugs.launchpad.net/ipython/+bug/414967

Your options:

- disable autocall permanently

- start using the future print_function and print() everywhere (except
for single-lines, where autocall works for you)

Here, on dev-branch:

In [2]: for i in range(10):
    print i,
------> print(i,)
------------------------------------------------------------
IndentationError: expected an indented block (<ipython console>, line 2)

In [4]: autocall 0
Automatic calling is: OFF

# now it's ok:
In [5]: for i in range(10):
    print i,
   ...:
0 1 2 3 4 5 6 7 8 9


Since we'll have to get used to print() anyway, might as well do it early...

Cheers,

f


More information about the IPython-user mailing list