[Python-checkins] python/nondist/sandbox/decimal Decimal.py, 1.18, 1.19

facundobatista at users.sourceforge.net facundobatista at users.sourceforge.net
Mon Apr 5 18:07:24 EDT 2004


Update of /cvsroot/python/python/nondist/sandbox/decimal
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27155
Modified Files:
	Decimal.py 
Log Message:
Added __r*__ methods. Fixed __sub__.
Index: Decimal.py
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/decimal/Decimal.py,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** Decimal.py	4 Apr 2004 16:14:25 -0000	1.18
--- Decimal.py	5 Apr 2004 22:07:21 -0000	1.19
***************
*** 96,107 ****
 """
 
! # 0.7.3 2003年4月04日 facundobatista: Added _convert_other method, for implicit
! # constructions, and more checks when constructing from
! # tuples. Fixed __sub__ to modify a copy of the instance.
! # 0.7.2 2003年4月02日 facundobatista: Fixed __pow__ to run the example ok. Added
! # from_float method. Fixed isnan to accept empty strings.
! # 0.7.1 2003年3月08日 facundobatista: Corrected initial examples
! # 0.7.0 2003年2月28日 eprice: More changes. Contexts done nicely, exponent limits
! # 0.6.0 2003年2月24日 eprice: Many changes. No exponent limits
 
 # Aahz:
--- 96,112 ----
 """
 
! # facundobatista:
! # 0.7.4 2003年04月05日 Added rdiv, rdivmod, rmod, rpow, rfloordiv special methods.
! # Fixed sub.
! # 0.7.3 2003年04月04日 Added _convert_other method, for implicit constructions,
! # and more checks when constructing from tuples. Fixed
! # __sub__ to modify a copy of the instance.
! # 0.7.2 2003年04月02日 Fixed __pow__ to run the example ok. Added from_float
! # method. Fixed isnan to accept empty strings.
! # 0.7.1 2003年03月08日 Corrected initial examples
! 
! # eprice:
! # 0.7.0 2003年2月28日 More changes. Contexts done nicely, exponent limits
! # 0.6.0 2003年2月24日 Many changes. No exponent limits
 
 # Aahz:
***************
*** 973,977 ****
 if context is None:
 context = getcontext()
! tmp = self._convert_other(other)
 
 ans = self._check_nans(other, context=context)
--- 978,982 ----
 if context is None:
 context = getcontext()
! other = self._convert_other(other)
 
 ans = self._check_nans(other, context=context)
***************
*** 982,986 ****
 # (-0 - 0 = -0 + (-0) = -0, but -0 + 0 = 0.)
 # so we change the sign directly to a copy
! tmp = Decimal(tmp)
 tmp._sign = 1-tmp._sign
 
--- 987,991 ----
 # (-0 - 0 = -0 + (-0) = -0, but -0 + 0 = 0.)
 # so we change the sign directly to a copy
! tmp = Decimal(other)
 tmp._sign = 1-tmp._sign
 
***************
*** 1282,1287 ****
 return ans
 
! def __rdiv__(self, other):
! raise NotImplementedError
 
 def __divmod__(self, other, context=None):
--- 1287,1295 ----
 return ans
 
! def __rdiv__(self, other, context=None):
! """Swaps self/other and returns __div__."""
! other = self._convert_other(other)
! return other.__div__(self, context=context)
! __rtruediv__ = __rdiv__
 
 def __divmod__(self, other, context=None):
***************
*** 1291,1296 ****
 return self._divide(other, 1, context)
 
! def __rdivmod__(self, other):
! raise NotImplementedError
 
 def __mod__(self, other, context=None):
--- 1299,1306 ----
 return self._divide(other, 1, context)
 
! def __rdivmod__(self, other, context=None):
! """Swaps self/other and returns __divmod__."""
! other = self._convert_other(other)
! return other.__divmod__(self, context=context)
 
 def __mod__(self, other, context=None):
***************
*** 1311,1316 ****
 return self._divide(other, 3, context)[1]
 
! def __rmod__(self, other):
! raise NotImplementedError
 
 def remainder_near(self, other, context=None):
--- 1321,1328 ----
 return self._divide(other, 3, context)[1]
 
! def __rmod__(self, other, context=None):
! """Swaps self/other and returns __mod__."""
! other = self._convert_other(other)
! return other.__mod__(self, context=context)
 
 def remainder_near(self, other, context=None):
***************
*** 1394,1397 ****
--- 1406,1414 ----
 return self._divide(other, 2, context)[0]
 
+ def __rfloordiv__(self, other, context=None):
+ """Swaps self/other and returns __floordiv__."""
+ other = self._convert_other(other)
+ return other.__floordiv__(self, context=context)
+ 
 def __float__(self):
 """Float representation."""
***************
*** 1794,1797 ****
--- 1811,1819 ----
 return val
 
+ def __rpow__(self, other, context=None):
+ """Swaps self/other and returns __pow__."""
+ other = self._convert_other(other)
+ return other.__pow__(self, context=context)
+ 
 def normalize(self, context=None):
 """Normalize- strip trailing 0s, change anything equal to 0 to 0e0"""


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /