diff options
author | Mark Dickinson <dickinsm@gmail.com> | 2009-01-25 10:48:51 (GMT) |
---|---|---|
committer | Mark Dickinson <dickinsm@gmail.com> | 2009-01-25 10:48:51 (GMT) |
commit | e6aad75f2ba571de7f1bebcf6b1251c2c22360f1 (patch) | |
tree | c58514029d7e6232cbd900a58af88549532c7976 /Lib/decimal.py | |
parent | 78246b6b457ea65cd33a71076a387d9127fe1a6d (diff) | |
download | cpython-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.py | 18 |
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 |