randrange(): 2.3 can no longer raises OverflowError on an int() call, so
some of this code because useless, and (worse) could return a long
instead of int (in Zope that's important, because a long can't be used
as a key in an IOBTree or IIBTree).
diff --git a/Lib/random.py b/Lib/random.py
index defddbe..0937ba2 100644
--- a/Lib/random.py
+++ b/Lib/random.py
@@ -148,16 +148,7 @@
if istop != stop:
raise ValueError, "non-integer stop for randrange()"
if step == 1 and istart < istop:
- try:
- return istart + int(self.random()*(istop - istart))
- except OverflowError:
- # This can happen if istop-istart > sys.maxint + 1, and
- # multiplying by random() doesn't reduce it to something
- # <= sys.maxint. We know that the overall result fits
- # in an int, and can still do it correctly via math.floor().
- # But that adds another function call, so for speed we
- # avoided that whenever possible.
- return int(istart + _floor(self.random()*(istop - istart)))
+ return int(istart + self.random()*(istop - istart))
if step == 1:
raise ValueError, "empty range for randrange()"