'Compares one to another.
-1 => a < b
0  => a = b
1  => a > b
NaN => one is NaN
Like __cmp__, but returns Decimal instances.'

def compare(self, other, context=None):

    other = _convert_other(other)
    if (self._is_special or (other and other._is_special)):
        ans = self._check_nans(other, context)
        if ans:
            return ans
    return Decimal(self.__cmp__(other, context))
