[IPython-user] Macros & slice notation
Fernando.Perez at colorado.edu
Sat Dec 31 17:17:17 CST 2005
Fernando Perez wrote:
> Ville Vainio wrote:
>>On 12/30/05, Fernando Perez <Fernando.Perez at colorado.edu> wrote:
>>>recipe for unnecessary confusion (think perl). I'd rather have one, good and
>>>intuitive way to do it: the human brain (at least mine :) is good at
>>>remembering specific use cases, as long as they remain reasonably orthogonal.
>>Well, if you want an intuitive way, I think it speaks directly for 1-3
>>as 1..3! :-)
>>1:4 is always a gotcha, one extra thing to remember, one extra brain
>>cycle, one thing that stops you from getting the direct "do what I
>>mean" experience. Because it's a %magic it basically boils down to
>>"what feels most comfortable", not "what is just like the rest of
>>python". Think $var string interpolation etc.
>>Plus, you are bumping the major version number so this is your break
>>at changing it. :-).
> OK, N-M it is then. I agree with your arguments about "magics are not python
> already, so let's just make them as convenient to use as possible". As for
> N--M, it's too latex-y for my taste (if we were to use proper math notation,
> we'd allow [N,M) for N...M-1, [N,M] for N..M, etc :).
> I'll code in the patches in a minute and will commit later.
OK, I just committed this. As it turns out, due to the way the underlying
implementation works, the N:M notation (for N..M-1) still works. It would
have broken other things to remove it (or made the code unnecessarily
complex), so I just left it in. The docstring now reads:
The notation for indicating number ranges is: n1-n2 means 'use line
numbers n1,...n2' (the endpoint is included). That is, '5-7' means
using the lines numbered 5,6 and 7.
Note: as a 'hidden' feature, you can also use traditional python slice
notation, where N:M means numbers N through M-1.
So hopefully this will satisfy most people (sorry Alan :)
OK, Happy New Year to everybody, and please report any problems. I just
uploaded 0.7.0.rc5, which has a number of important fixes I made last night.
Some pounding on this would be very welcome. My target release date for 0.7.0
is around Jan 10, give or take a few days.
More information about the IPython-user