From afb8979771e78ef8fe3d610c023463f7ec4f3e1b Mon Sep 17 00:00:00 2001 From: Tim Peters Date: Thu, 19 Jun 2003 03:23:06 +0000 Subject: [PATCH] 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). --- Lib/random.py | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/Lib/random.py b/Lib/random.py index defddbede98..0937ba20dc0 100644 --- a/Lib/random.py +++ b/Lib/random.py @@ -148,16 +148,7 @@ def randrange(self, start, stop=None, step=1, int=int, default=None): 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()"