[pypy-commit] pypy default: (alex, fijal): removed float_w multimethod
alex_gaynor
noreply at buildbot.pypy.org
Sat Mar 23 18:30:22 CET 2013
Author: Alex Gaynor <alex.gaynor at gmail.com>
Branch:
Changeset: r62693:9bdbaa4b41e9
Date: 2013-03-23 10:29 -0700
http://bitbucket.org/pypy/pypy/changeset/9bdbaa4b41e9/
Log: (alex, fijal): removed float_w multimethod
diff --git a/pypy/interpreter/baseobjspace.py b/pypy/interpreter/baseobjspace.py
--- a/pypy/interpreter/baseobjspace.py
+++ b/pypy/interpreter/baseobjspace.py
@@ -211,6 +211,10 @@
raise OperationError(space.w_TypeError,
typed_unwrap_error_msg(space, "integer", self))
+ def float_w(self, space):
+ raise OperationError(space.w_TypeError,
+ typed_unwrap_error_msg(space, "float", self))
+
def uint_w(self, space):
raise OperationError(space.w_TypeError,
typed_unwrap_error_msg(space, "integer", self))
@@ -1308,6 +1312,9 @@
def bigint_w(self, w_obj):
return w_obj.bigint_w(self)
+ def float_w(self, w_obj):
+ return w_obj.float_w(self)
+
def realstr_w(self, w_obj):
# Like str_w, but only works if w_obj is really of type 'str'.
if not self.is_true(self.isinstance(w_obj, self.w_str)):
@@ -1670,4 +1677,4 @@
'newslice',
'call_args',
'marshal_w',
- ]
+]
diff --git a/pypy/objspace/std/default.py b/pypy/objspace/std/default.py
--- a/pypy/objspace/std/default.py
+++ b/pypy/objspace/std/default.py
@@ -1,6 +1,5 @@
"""Default implementation for some operation."""
-from pypy.interpreter.error import OperationError, typed_unwrap_error_msg
from pypy.objspace.std.register_all import register_all
@@ -9,8 +8,4 @@
def init__ANY(space, w_obj, __args__):
pass
-def float_w__ANY(space,w_obj):
- raise OperationError(space.w_TypeError,
- typed_unwrap_error_msg(space, "float", w_obj))
-
register_all(vars())
diff --git a/pypy/objspace/std/floatobject.py b/pypy/objspace/std/floatobject.py
--- a/pypy/objspace/std/floatobject.py
+++ b/pypy/objspace/std/floatobject.py
@@ -55,6 +55,9 @@
def unwrap(w_self, space):
return w_self.floatval
+ def float_w(self, space):
+ return self.floatval
+
def __repr__(self):
return "<W_FloatObject(%f)>" % self.floatval
@@ -114,9 +117,6 @@
else:
return space.newint(value)
-def float_w__Float(space, w_float):
- return w_float.floatval
-
def _char_from_hex(number):
return "0123456789abcdef"[number]
diff --git a/pypy/objspace/std/intobject.py b/pypy/objspace/std/intobject.py
--- a/pypy/objspace/std/intobject.py
+++ b/pypy/objspace/std/intobject.py
@@ -64,6 +64,9 @@
def bigint_w(w_self, space):
return rbigint.fromint(w_self.intval)
+ def float_w(self, space):
+ return float(self.intval)
+
registerimplementation(W_IntObject)
# NB: This code is shared by smallintobject.py, and thus no other Int
diff --git a/pypy/objspace/std/longobject.py b/pypy/objspace/std/longobject.py
--- a/pypy/objspace/std/longobject.py
+++ b/pypy/objspace/std/longobject.py
@@ -84,6 +84,9 @@
def bigint_w(w_self, space):
return w_self.num
+ def float_w(self, space):
+ return self.num.tofloat()
+
def __repr__(self):
return '<W_LongObject(%d)>' % self.num.tolong()
diff --git a/pypy/objspace/std/model.py b/pypy/objspace/std/model.py
--- a/pypy/objspace/std/model.py
+++ b/pypy/objspace/std/model.py
@@ -436,7 +436,6 @@
init = StdObjSpaceMultiMethod('__init__', 1, general__args__=True)
getnewargs = StdObjSpaceMultiMethod('__getnewargs__', 1)
# special visible multimethods
- float_w = StdObjSpaceMultiMethod('float_w', 1, []) # returns an unwrapped float
# NOTE: when adding more sometype_w() methods, you need to write a
# stub in default.py to raise a space.w_TypeError
marshal_w = StdObjSpaceMultiMethod('marshal_w', 1, [], extra_args=['marshaller'])
@@ -449,4 +448,3 @@
del mm
pow.extras['defaults'] = (None,)
-
diff --git a/pypy/objspace/std/smalllongobject.py b/pypy/objspace/std/smalllongobject.py
--- a/pypy/objspace/std/smalllongobject.py
+++ b/pypy/objspace/std/smalllongobject.py
@@ -66,6 +66,10 @@
def bigint_w(w_self, space):
return w_self.asbigint()
+ def float_w(self, space):
+ return float(self.longlong)
+
+
registerimplementation(W_SmallLongObject)
# ____________________________________________________________
More information about the pypy-commit
mailing list