summaryrefslogtreecommitdiffstats
path: root/Lib/decimal.py
diff options
context:
space:
mode:
authorMark Dickinson <dickinsm@gmail.com>2009-01-25 10:48:51 (GMT)
committerMark Dickinson <dickinsm@gmail.com>2009-01-25 10:48:51 (GMT)
commite6aad75f2ba571de7f1bebcf6b1251c2c22360f1 (patch)
treec58514029d7e6232cbd900a58af88549532c7976 /Lib/decimal.py
parent78246b6b457ea65cd33a71076a387d9127fe1a6d (diff)
downloadcpython-e6aad75f2ba571de7f1bebcf6b1251c2c22360f1.zip
cpython-e6aad75f2ba571de7f1bebcf6b1251c2c22360f1.tar.gz
cpython-e6aad75f2ba571de7f1bebcf6b1251c2c22360f1.tar.bz2
Merged revisions 68920 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r68920 | mark.dickinson | 2009-01-25 10:39:15 +0000 (Sun, 25 Jan 2009) | 2 lines Remove uses of cmp from the decimal module. ........
Diffstat (limited to 'Lib/decimal.py')
-rw-r--r--Lib/decimal.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/Lib/decimal.py b/Lib/decimal.py
index 26bc8ef..4f9be21 100644
--- a/Lib/decimal.py
+++ b/Lib/decimal.py
@@ -805,9 +805,16 @@ class Decimal(object):
if self > other. This routine is for internal use only."""
if self._is_special or other._is_special:
- return cmp(self._isinfinity(), other._isinfinity())
+ self_inf = self._isinfinity()
+ other_inf = other._isinfinity()
+ if self_inf == other_inf:
+ return 0
+ elif self_inf < other_inf:
+ return -1
+ else:
+ return 1
- # check for zeros; note that cmp(0, -0) should return 0
+ # check for zeros; Decimal('0') == Decimal('-0')
if not self:
if not other:
return 0
@@ -827,7 +834,12 @@ class Decimal(object):
if self_adjusted == other_adjusted:
self_padded = self._int + '0'*(self._exp - other._exp)
other_padded = other._int + '0'*(other._exp - self._exp)
- return cmp(self_padded, other_padded) * (-1)**self._sign
+ if self_padded == other_padded:
+ return 0
+ elif self_padded < other_padded:
+ return -(-1)**self._sign
+ else:
+ return (-1)**self._sign
elif self_adjusted > other_adjusted:
return (-1)**self._sign
else: # self_adjusted < other_adjusted