[pypy-svn] r69285 - in pypy/branch/faster-raise/pypy: interpreter module/exceptions module/exceptions/test objspace/std
fijal at codespeak.net
fijal at codespeak.net
Sat Nov 14 14:46:38 CET 2009
Author: fijal
Date: Sat Nov 14 14:46:37 2009
New Revision: 69285
Modified:
pypy/branch/faster-raise/pypy/interpreter/typedef.py
pypy/branch/faster-raise/pypy/module/exceptions/interp_exceptions.py
pypy/branch/faster-raise/pypy/module/exceptions/test/test_exc.py
pypy/branch/faster-raise/pypy/objspace/std/stdtypedef.py
Log:
(fijal, arigo)
Move descr_del_dict to interpreter/typedef.py
and use it from module/exceptions.
Modified: pypy/branch/faster-raise/pypy/interpreter/typedef.py
==============================================================================
--- pypy/branch/faster-raise/pypy/interpreter/typedef.py (original)
+++ pypy/branch/faster-raise/pypy/interpreter/typedef.py Sat Nov 14 14:46:37 2009
@@ -562,6 +562,9 @@
def descr_set_dict(space, w_obj, w_dict):
w_obj.setdict(space, w_dict)
+def descr_del_dict(space, w_obj): # blame CPython for the existence of this one
+ w_obj.setdict(space, space.newdict())
+
def descr_get_weakref(space, w_obj):
lifeline = w_obj.getweakref()
if lifeline is None:
Modified: pypy/branch/faster-raise/pypy/module/exceptions/interp_exceptions.py
==============================================================================
--- pypy/branch/faster-raise/pypy/module/exceptions/interp_exceptions.py (original)
+++ pypy/branch/faster-raise/pypy/module/exceptions/interp_exceptions.py Sat Nov 14 14:46:37 2009
@@ -72,7 +72,8 @@
from pypy.interpreter.baseobjspace import ObjSpace, Wrappable, W_Root
from pypy.interpreter.typedef import TypeDef, interp_attrproperty_w,\
- GetSetProperty, interp_attrproperty, descr_get_dict, descr_set_dict
+ GetSetProperty, interp_attrproperty, descr_get_dict, descr_set_dict,\
+ descr_del_dict
from pypy.interpreter.gateway import interp2app, Arguments
from pypy.interpreter.error import OperationError
from pypy.rlib import rwin32
@@ -182,7 +183,7 @@
__init__ = interp2app(W_BaseException.descr_init),
__str__ = interp2app(W_BaseException.descr_str),
__repr__ = interp2app(W_BaseException.descr_repr),
- __dict__ = GetSetProperty(descr_get_dict, descr_set_dict,
+ __dict__ = GetSetProperty(descr_get_dict, descr_set_dict, descr_del_dict,
cls=W_BaseException),
__getitem__ = interp2app(W_BaseException.descr_getitem),
__reduce__ = interp2app(W_BaseException.descr_reduce),
Modified: pypy/branch/faster-raise/pypy/module/exceptions/test/test_exc.py
==============================================================================
--- pypy/branch/faster-raise/pypy/module/exceptions/test/test_exc.py (original)
+++ pypy/branch/faster-raise/pypy/module/exceptions/test/test_exc.py Sat Nov 14 14:46:37 2009
@@ -40,6 +40,15 @@
x = X(x=8)
assert x.x == 8
+ def test_catch_with_unpack(self):
+ from exceptions import LookupError
+
+ try:
+ raise LookupError(1, 2)
+ except LookupError, (one, two):
+ assert one == 1
+ assert two == 2
+
def test_exc(self):
from exceptions import Exception, BaseException
Modified: pypy/branch/faster-raise/pypy/objspace/std/stdtypedef.py
==============================================================================
--- pypy/branch/faster-raise/pypy/objspace/std/stdtypedef.py (original)
+++ pypy/branch/faster-raise/pypy/objspace/std/stdtypedef.py Sat Nov 14 14:46:37 2009
@@ -2,7 +2,7 @@
from pypy.interpreter.error import OperationError
from pypy.interpreter.typedef import TypeDef, GetSetProperty, Member
from pypy.interpreter.typedef import descr_get_dict, descr_set_dict
-from pypy.interpreter.typedef import no_hash_descr
+from pypy.interpreter.typedef import no_hash_descr, descr_del_dict
from pypy.interpreter.baseobjspace import SpaceCache
from pypy.objspace.std.model import StdObjSpaceMultiMethod
from pypy.objspace.std.multimethod import FailedToImplement
@@ -39,9 +39,6 @@
a = a.base
return True
-def descr_del_dict(space, w_obj): # blame CPython for the existence of this one
- w_obj.setdict(space, space.newdict())
-
std_dict_descr = GetSetProperty(descr_get_dict, descr_set_dict, descr_del_dict)
std_dict_descr.name = '__dict__'
More information about the Pypy-commit
mailing list