Skip to content

Commit 5f5332a

Browse files
Merge python#19
19: Warn for range and xrange r=ltratt a=nanjekyejoannah See notes: ``` Py2.x: >>> x = xrange(1, 10000) >>> a = range(1,10000) >>> type(a) <type 'list'> >>> Py3.x: >>> x = xrange(1, 10000) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'xrange' is not defined >>> a = range(1,10000) >>> type(a) <class 'range'> >>> ``` Co-authored-by: Joannah Nanjekye <[email protected]>
2 parents 3e44bb0 + af6a3d4 commit 5f5332a

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

Lib/test/test_xrange.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Python test set -- built-in functions
22

33
import test.test_support, unittest
4+
from test.test_support import check_py3k_warnings
45
import sys
56
import pickle
67
import itertools
@@ -179,6 +180,11 @@ def test_repr(self):
179180
r_out = eval(repr(r))
180181
self.assert_xranges_equivalent(r, r_out)
181182

183+
def test_xrange_3k(self):
184+
expected = "xrange() is not supported in 3.x: use range() instead"
185+
with check_py3k_warnings((expected, DeprecationWarning)):
186+
xrange(1, 10000)
187+
182188
def test_range_iterators(self):
183189
# see issue 7298
184190
limits = [base + jiggle

Objects/rangeobject.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@ range_new(PyTypeObject *type, PyObject *args, PyObject *kw)
6868
long ilow = 0, ihigh = 0, istep = 1;
6969
unsigned long n;
7070

71+
if (PyErr_WarnPy3k_WithFix("xrange() is not supported in 3.x", "use range() instead", 1) < 0)
72+
return NULL;
73+
7174
if (!_PyArg_NoKeywords("xrange()", kw))
7275
return NULL;
7376

0 commit comments

Comments
 (0)