[pypy-svn] rev 537 - pypy/trunk/src/pypy/objspace/std
arigo at codespeak.net
arigo at codespeak.net
Tue May 27 13:37:39 CEST 2003
Author: arigo
Date: Tue May 27 13:37:39 2003
New Revision: 537
Modified:
pypy/trunk/src/pypy/objspace/std/objspace.py
Log:
fake __class__ attribute
Modified: pypy/trunk/src/pypy/objspace/std/objspace.py
==============================================================================
--- pypy/trunk/src/pypy/objspace/std/objspace.py (original)
+++ pypy/trunk/src/pypy/objspace/std/objspace.py Tue May 27 13:37:39 2003
@@ -163,6 +163,11 @@
#w_type = space.type(w_obj)
#w_typename = space.getattr(w_type, space.wrap('__name__'))
#...
+
+ # XXX as long as don't have types...
+ if space.is_true(space.eq(w_attr, space.wrap('__class__'))):
+ return space.wrap(space.unwrap(w_obj).__class__)
+
raise OperationError(space.w_AttributeError, w_attr)
StdObjSpace.getattr.register(default_getattr, W_ANY, W_ANY)
@@ -176,3 +181,11 @@
raise OperationError(space.w_AttributeError, w_attr)
StdObjSpace.delattr.register(default_getattr, W_ANY, W_ANY)
+
+# add default implementations for in-place operators
+for _name, _symbol, _arity in ObjSpace.MethodTable:
+ if _name.startswith('inplace_'):
+ def default_inplace(space, w_1, w_2, baseop=_name[8:]):
+ op = getattr(space, baseop)
+ return op(w_1, w_2)
+ getattr(StdObjSpace, _name).register(default_inplace, W_ANY, W_ANY)
More information about the Pypy-commit
mailing list