Author: Manuel Jacob Branch: remove-remaining-smm Changeset: r69306:5f3f540c4ba5 Date: 2014-02-23 23:04 +0100 http://bitbucket.org/pypy/pypy/changeset/5f3f540c4ba5/
Log: Add remaining __r*__ to complex. diff --git a/pypy/objspace/std/complexobject.py b/pypy/objspace/std/complexobject.py --- a/pypy/objspace/std/complexobject.py +++ b/pypy/objspace/std/complexobject.py @@ -18,12 +18,6 @@ from rpython.rlib.rstring import ParseStringError -# ERRORCODES - -ERR_WRONG_SECOND = "complex() can't take second arg if first is a string" -ERR_MALFORMED = "complex() arg is a malformed string" - - class W_AbstractComplexObject(W_Object): __slots__ = () @@ -215,6 +209,9 @@ return (space.float_w(space.float(w_complex)), 0.0) +ERR_MALFORMED = "complex() arg is a malformed string" + + class W_ComplexObject(W_AbstractComplexObject): """This is a reimplementation of the CPython "PyComplexObject" """ @@ -367,6 +364,10 @@ w_rhs = to_complex(space, w_rhs) return self.mul(w_rhs) + def descr_rmul(self, space, w_lhs): + w_lhs = to_complex(space, w_lhs) + return w_lhs.mul(self) + def descr_truediv(self, space, w_rhs): w_rhs = to_complex(space, w_rhs) try: @@ -374,15 +375,29 @@ except ZeroDivisionError, e: raise OperationError(space.w_ZeroDivisionError, space.wrap(str(e))) + def descr_rtruediv(self, space, w_lhs): + w_lhs = to_complex(space, w_lhs) + try: + return w_lhs.div(self) + except ZeroDivisionError, e: + raise OperationError(space.w_ZeroDivisionError, space.wrap(str(e))) + def descr_floordiv(self, space, w_rhs): w_rhs = to_complex(space, w_rhs) - w_rhs = to_complex(space, w_rhs) # don't care about the slight slowdown you get from using divmod try: return self.divmod(space, w_rhs)[0] except ZeroDivisionError, e: raise OperationError(space.w_ZeroDivisionError, space.wrap(str(e))) + def descr_rfloordiv(self, space, w_lhs): + w_lhs = to_complex(space, w_lhs) + # don't care about the slight slowdown you get from using divmod + try: + return w_lhs.divmod(space, self)[0] + except ZeroDivisionError, e: + raise OperationError(space.w_ZeroDivisionError, space.wrap(str(e))) + def descr_mod(self, space, w_rhs): w_rhs = to_complex(space, w_rhs) try: @@ -390,6 +405,13 @@ except ZeroDivisionError, e: raise OperationError(space.w_ZeroDivisionError, space.wrap(str(e))) + def descr_rmod(self, space, w_lhs): + w_lhs = to_complex(space, w_lhs) + try: + return w_lhs.divmod(space, self)[1] + except ZeroDivisionError, e: + raise OperationError(space.w_ZeroDivisionError, space.wrap(str(e))) + def descr_divmod(self, space, w_rhs): w_rhs = to_complex(space, w_rhs) try: @@ -398,6 +420,14 @@ raise OperationError(space.w_ZeroDivisionError, space.wrap(str(e))) return space.newtuple([div, mod]) + def descr_rdivmod(self, space, w_lhs): + w_lhs = to_complex(space, w_lhs) + try: + div, mod = w_lhs.divmod(space, self) + except ZeroDivisionError, e: + raise OperationError(space.w_ZeroDivisionError, space.wrap(str(e))) + return space.newtuple([div, mod]) + @unwrap_spec(w_third_arg=WrappedDefault(None)) def descr_pow(self, space, w_exponent, w_third_arg): w_exponent = to_complex(space, w_exponent) @@ -558,11 +588,17 @@ __sub__ = interp2app(W_ComplexObject.descr_sub), __rsub__ = interp2app(W_ComplexObject.descr_rsub), __mul__ = interp2app(W_ComplexObject.descr_mul), + __rmul__ = interp2app(W_ComplexObject.descr_rmul), __div__ = interp2app(W_ComplexObject.descr_truediv), + __rdiv__ = interp2app(W_ComplexObject.descr_rtruediv), __truediv__ = interp2app(W_ComplexObject.descr_truediv), + __rtruediv__ = interp2app(W_ComplexObject.descr_rtruediv), __floordiv__ = interp2app(W_ComplexObject.descr_floordiv), + __rfloordiv__ = interp2app(W_ComplexObject.descr_rfloordiv), __mod__ = interp2app(W_ComplexObject.descr_mod), + __rmod__ = interp2app(W_ComplexObject.descr_rmod), __divmod__ = interp2app(W_ComplexObject.descr_divmod), + __rdivmod__ = interp2app(W_ComplexObject.descr_rdivmod), __pow__ = interp2app(W_ComplexObject.descr_pow), ) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit