[Python-Dev] Deprecate PyRange_New()
tim.peters at gmail.com
Fri Nov 12 05:51:15 CET 2004
> A while back, Tim added a comment that PyRange_New() should be
> deprecated in-part because it is filled with problems and is not used
> anywhere in the core.
And because it's undocumented. The only place it's even mentioned is
in the NEWS for 2.3a1:
- PyRange_New() now raises ValueError if the fourth argument is not 1.
This is part of the removal of deprecated features of the xrange
> Doesn't anyone mind if I mark it in the C-API docs as deprecated so it
> can be phased out later?
I don't object to *documenting* a PyRange_New() API function, BTW, but
the current implementation is too broken to fix with less than heroic
effort. If PyRange_New() needs to exist in the C API, then it should
have the same (lo, hi, step) signature as the builtin range(), for
which we have correct but non-obvious error-checking C code. The
funky (start, len, step, reps) signature of the current PyRange_New()
is much more difficult to check for errors (e.g., detecting C long
multiplication overflow in portable C is a sub-problem), and the
current signature is too surprising regardless (because it's so
different from the builtin range()).
More information about the Python-Dev