Skip to content

Commit 6ff20ab

Browse files
Revert "Raise TypeError instead of ValueError."
This reverts commit 2e8cfda.
1 parent d2925e6 commit 6ff20ab

File tree

4 files changed

+16
-34
lines changed

4 files changed

+16
-34
lines changed

Doc/library/random.rst

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,10 +135,6 @@ Functions for integers
135135
values. Formerly it used a style like ``int(random()*n)`` which could produce
136136
slightly uneven distributions.
137137

138-
.. versionchanged:: 3.10
139-
Formerly :exc:`ValueError` could be raised for non-integer arguments
140-
instead of :exc:`TypeError`.
141-
142138
.. deprecated:: 3.10
143139
Accepting non-integer arguments is deprecated.
144140

Lib/random.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ def randrange(self, start, stop=None, step=1):
303303
except TypeError:
304304
istart = int(start)
305305
if istart != start:
306-
raise TypeError("non-integer arg 1 for randrange()")
306+
raise ValueError("non-integer arg 1 for randrange()")
307307
_warn('non-integer arg 1 for randrange()',
308308
DeprecationWarning, 2)
309309
if stop is None:
@@ -317,7 +317,7 @@ def randrange(self, start, stop=None, step=1):
317317
except TypeError:
318318
istop = int(stop)
319319
if istop != stop:
320-
raise TypeError("non-integer stop for randrange()")
320+
raise ValueError("non-integer stop for randrange()")
321321
_warn('non-integer stop for randrange()',
322322
DeprecationWarning, 2)
323323
width = istop - istart
@@ -326,7 +326,7 @@ def randrange(self, start, stop=None, step=1):
326326
except TypeError:
327327
istep = int(step)
328328
if istep != step:
329-
raise TypeError("non-integer step for randrange()")
329+
raise ValueError("non-integer step for randrange()")
330330
_warn('non-integer step for randrange()',
331331
DeprecationWarning, 2)
332332
# Fast path.

Lib/test/test_random.py

Lines changed: 13 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -529,40 +529,28 @@ def test_randrange_nonunit_step(self):
529529
rint = self.gen.randrange(0, 2, 2)
530530
self.assertEqual(rint, 0)
531531

532-
def test_randrange_non_integers(self):
533-
randrange = self.gen.randrange
534-
with self.assertWarns(DeprecationWarning):
535-
self.assertIn(randrange(3.0), range(3))
536-
with self.assertWarns(DeprecationWarning):
537-
self.assertIn(randrange(0, 3.0), range(0, 3))
538-
with self.assertWarns(DeprecationWarning):
539-
self.assertIn(randrange(0, 42, 1.0), range(0, 42, 1))
540-
with self.assertWarns(DeprecationWarning):
541-
self.assertIn(randrange(0, 42, 3.0), range(0, 42, 3))
542-
543532
def test_randrange_errors(self):
544-
randrange = self.gen.randrange
545-
raises = partial(self.assertRaises, ValueError, randrange)
533+
raises = partial(self.assertRaises, ValueError, self.gen.randrange)
546534
# Empty range
547535
raises(3, 3)
548536
raises(-721)
549537
raises(0, 100, -12)
550538
self.assertWarns(DeprecationWarning, raises, 3, 3, 1.0)
551539
# Non-integer start/stop
552-
self.assertRaises(TypeError, randrange, 3.14159)
553-
self.assertWarns(DeprecationWarning, randrange, 3.0)
554-
self.assertWarns(DeprecationWarning, randrange, Fraction(3, 1))
555-
self.assertRaises(TypeError, randrange, '3')
556-
self.assertRaises(TypeError, randrange, 0, 2.71828)
557-
self.assertWarns(DeprecationWarning, randrange, 0, 2.0)
558-
self.assertWarns(DeprecationWarning, randrange, 0, Fraction(2, 1))
559-
self.assertRaises(TypeError, randrange, 0, '2')
540+
raises(3.14159)
541+
self.assertWarns(DeprecationWarning, self.gen.randrange, 3.0)
542+
self.assertWarns(DeprecationWarning, self.gen.randrange, Fraction(3, 1))
543+
raises('3')
544+
raises(0, 2.71828)
545+
self.assertWarns(DeprecationWarning, self.gen.randrange, 0, 2.0)
546+
self.assertWarns(DeprecationWarning, self.gen.randrange, 0, Fraction(2, 1))
547+
raises(0, '2')
560548
# Zero and non-integer step
561549
raises(0, 42, 0)
562-
self.assertRaises(TypeError, randrange, 0, 42, 3.14159)
563-
self.assertWarns(DeprecationWarning, randrange, 0, 42, 3.0)
564-
self.assertWarns(DeprecationWarning, randrange, 0, 42, Fraction(3, 1))
565-
self.assertRaises(TypeError, randrange, 0, 42, '3')
550+
raises(0, 42, 3.14159)
551+
self.assertWarns(DeprecationWarning, self.gen.randrange, 0, 42, 3.0)
552+
self.assertWarns(DeprecationWarning, self.gen.randrange, 0, 42, Fraction(3, 1))
553+
raises(0, 42, '3')
566554

567555
def test_randbelow_logic(self, _log=log, int=int):
568556
# check bitcount transition points: 2**i and 2**(i+1)-1
Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1 @@
11
Deprecated support of non-integer arguments in :func:`random.randrange`.
2-
:exc:`TypeError` is now always raised for wrong type of arguments
3-
(formerly :exc:`ValueError` could be raised for some non-integer arguments).

0 commit comments

Comments
 (0)