Author: Philip Jenvey <pjen...@underboss.org> Branch: py3k Changeset: r84581:c003d9ab8b20 Date: 2016-05-22 11:19 -0700 http://bitbucket.org/pypy/pypy/changeset/c003d9ab8b20/
Log: merge default diff --git a/pypy/interpreter/astcompiler/test/test_ast.py b/pypy/interpreter/astcompiler/test/test_ast.py --- a/pypy/interpreter/astcompiler/test/test_ast.py +++ b/pypy/interpreter/astcompiler/test/test_ast.py @@ -1,8 +1,8 @@ from pypy.interpreter.astcompiler import ast class TestAstToObject: def test_types(self, space): - assert space.is_true(space.issubtype( - ast.get(space).w_Module, ast.get(space).w_mod)) + assert space.issubtype_w( + ast.get(space).w_Module, ast.get(space).w_mod) def test_num(self, space): value = space.wrap(42) diff --git a/pypy/interpreter/baseobjspace.py b/pypy/interpreter/baseobjspace.py --- a/pypy/interpreter/baseobjspace.py +++ b/pypy/interpreter/baseobjspace.py @@ -1206,7 +1206,7 @@ def abstract_issubclass_w(self, w_cls1, w_cls2): # Equivalent to 'issubclass(cls1, cls2)'. - return self.is_true(self.issubtype(w_cls1, w_cls2)) + return self.issubtype_w(w_cls1, w_cls2) def abstract_isinstance_w(self, w_obj, w_cls): # Equivalent to 'isinstance(obj, cls)'. @@ -1236,16 +1236,16 @@ def exception_is_valid_obj_as_class_w(self, w_obj): if not self.isinstance_w(w_obj, self.w_type): return False - return self.is_true(self.issubtype(w_obj, self.w_BaseException)) + return self.issubtype_w(w_obj, self.w_BaseException) def exception_is_valid_class_w(self, w_cls): - return self.is_true(self.issubtype(w_cls, self.w_BaseException)) + return self.issubtype_w(w_cls, self.w_BaseException) def exception_getclass(self, w_obj): return self.type(w_obj) def exception_issubclass_w(self, w_cls1, w_cls2): - return self.is_true(self.issubtype(w_cls1, w_cls2)) + return self.issubtype_w(w_cls1, w_cls2) def new_exception_class(self, *args, **kwargs): "NOT_RPYTHON; convenience method to create excceptions in modules" diff --git a/pypy/module/__builtin__/abstractinst.py b/pypy/module/__builtin__/abstractinst.py --- a/pypy/module/__builtin__/abstractinst.py +++ b/pypy/module/__builtin__/abstractinst.py @@ -73,11 +73,10 @@ try: if space.is_w(w_pretendtype, space.type(w_obj)): return False # common case: obj.__class__ is type(obj) - if allow_override: - w_result = space.issubtype_allow_override(w_pretendtype, - w_klass_or_tuple) - else: - w_result = space.issubtype(w_pretendtype, w_klass_or_tuple) + if not allow_override: + return space.issubtype_w(w_pretendtype, w_klass_or_tuple) + w_result = space.issubtype_allow_override(w_pretendtype, + w_klass_or_tuple) except OperationError as e: if e.async(space): raise @@ -130,11 +129,9 @@ # -- case (type, type) try: - if allow_override: - w_result = space.issubtype_allow_override(w_derived, - w_klass_or_tuple) - else: - w_result = space.issubtype(w_derived, w_klass_or_tuple) + if not allow_override: + return space.issubtype_w(w_derived, w_klass_or_tuple) + w_result = space.issubtype_allow_override(w_derived, w_klass_or_tuple) except OperationError as e: # if one of the args was not a type, ignore it if not e.match(space, space.w_TypeError): raise # propagate other errors diff --git a/pypy/module/__builtin__/descriptor.py b/pypy/module/__builtin__/descriptor.py --- a/pypy/module/__builtin__/descriptor.py +++ b/pypy/module/__builtin__/descriptor.py @@ -20,7 +20,7 @@ w_type = None # unbound super object w_obj_or_type = space.w_None else: - w_type = _supercheck(space, w_starttype, w_obj_or_type) + w_type = _super_check(space, w_starttype, w_obj_or_type) self.w_starttype = w_starttype self.w_objtype = w_type self.w_self = w_obj_or_type @@ -83,16 +83,16 @@ raise oefmt(space.w_RuntimeError, "super(): empty __class__ cell") return w_starttype, w_obj -def _supercheck(space, w_starttype, w_obj_or_type): +def _super_check(space, w_starttype, w_obj_or_type): """Check that the super() call makes sense. Returns a type""" w_objtype = space.type(w_obj_or_type) - if (space.is_true(space.issubtype(w_objtype, space.w_type)) and - space.is_true(space.issubtype(w_obj_or_type, w_starttype))): + if (space.issubtype_w(w_objtype, space.w_type) and + space.issubtype_w(w_obj_or_type, w_starttype)): # special case for class methods return w_obj_or_type - if space.is_true(space.issubtype(w_objtype, w_starttype)): + if space.issubtype_w(w_objtype, w_starttype): # normal case return w_objtype @@ -103,7 +103,7 @@ raise w_type = w_objtype - if space.is_true(space.issubtype(w_type, w_starttype)): + if space.issubtype_w(w_type, w_starttype): return w_type raise oefmt(space.w_TypeError, "super(type, obj): obj must be an instance or subtype of type") diff --git a/pypy/module/cpyext/api.py b/pypy/module/cpyext/api.py --- a/pypy/module/cpyext/api.py +++ b/pypy/module/cpyext/api.py @@ -708,7 +708,7 @@ w_obj_type = space.type(w_obj) w_type = get_w_type(space) return (space.is_w(w_obj_type, w_type) or - space.is_true(space.issubtype(w_obj_type, w_type))) + space.issubtype_w(w_obj_type, w_type)) def check_exact(space, w_obj): "Implements the Py_Xxx_CheckExact function" w_obj_type = space.type(w_obj) diff --git a/pypy/module/cpyext/modsupport.py b/pypy/module/cpyext/modsupport.py --- a/pypy/module/cpyext/modsupport.py +++ b/pypy/module/cpyext/modsupport.py @@ -100,7 +100,7 @@ w_type = space.gettypeobject(Module.typedef) w_obj_type = space.type(w_obj) return int(space.is_w(w_type, w_obj_type) or - space.is_true(space.issubtype(w_obj_type, w_type))) + space.issubtype_w(w_obj_type, w_type)) @cpython_api([PyObject], PyObject, result_borrowed=True) def PyModule_GetDict(space, w_mod): diff --git a/pypy/module/cpyext/ndarrayobject.py b/pypy/module/cpyext/ndarrayobject.py --- a/pypy/module/cpyext/ndarrayobject.py +++ b/pypy/module/cpyext/ndarrayobject.py @@ -35,7 +35,7 @@ w_obj_type = space.type(w_obj) w_type = space.gettypeobject(W_NDimArray.typedef) return (space.is_w(w_obj_type, w_type) or - space.is_true(space.issubtype(w_obj_type, w_type))) + space.issubtype_w(w_obj_type, w_type)) @cpython_api([PyObject], rffi.INT_real, error=CANNOT_FAIL, header=HEADER) def _PyArray_CheckExact(space, w_obj): diff --git a/pypy/module/cpyext/slotdefs.py b/pypy/module/cpyext/slotdefs.py --- a/pypy/module/cpyext/slotdefs.py +++ b/pypy/module/cpyext/slotdefs.py @@ -78,8 +78,7 @@ args_w = space.fixedview(w_args) ref = make_ref(space, w_self) if (not ref.c_ob_type.c_tp_flags & Py_TPFLAGS_CHECKTYPES and - not space.is_true(space.issubtype(space.type(args_w[0]), - space.type(w_self)))): + not space.issubtype_w(space.type(args_w[0]), space.type(w_self))): return space.w_NotImplemented Py_DecRef(space, ref) return generic_cpy_call(space, func_binary, w_self, args_w[0]) @@ -90,8 +89,7 @@ args_w = space.fixedview(w_args) ref = make_ref(space, w_self) if (not ref.c_ob_type.c_tp_flags & Py_TPFLAGS_CHECKTYPES and - not space.is_true(space.issubtype(space.type(args_w[0]), - space.type(w_self)))): + not space.issubtype_w(space.type(args_w[0]), space.type(w_self))): return space.w_NotImplemented Py_DecRef(space, ref) return generic_cpy_call(space, func_binary, args_w[0], w_self) @@ -113,8 +111,7 @@ args_w = space.fixedview(w_args) ref = make_ref(space, w_self) if (not ref.c_ob_type.c_tp_flags & Py_TPFLAGS_CHECKTYPES and - not space.is_true(space.issubtype(space.type(args_w[0]), - space.type(w_self)))): + not space.issubtype_w(space.type(args_w[0]), space.type(w_self))): return space.w_NotImplemented Py_DecRef(space, ref) arg3 = space.w_None @@ -346,8 +343,7 @@ check_num_args(space, w_args, 1) w_other, = space.fixedview(w_args) - if not space.is_true(space.issubtype(space.type(w_self), - space.type(w_other))): + if not space.issubtype_w(space.type(w_self), space.type(w_other)): raise oefmt(space.w_TypeError, "%T.__cmp__(x,y) requires y to be a '%T', not a '%T'", w_self, w_self, w_other) diff --git a/pypy/module/cpyext/test/test_typeobject.py b/pypy/module/cpyext/test/test_typeobject.py --- a/pypy/module/cpyext/test/test_typeobject.py +++ b/pypy/module/cpyext/test/test_typeobject.py @@ -723,7 +723,7 @@ long intval; PyObject *name; - if (!PyArg_ParseTuple(args, "l", &intval)) + if (!PyArg_ParseTuple(args, "i", &intval)) return NULL; IntLike_Type.tp_flags |= Py_TPFLAGS_DEFAULT; diff --git a/pypy/module/cpyext/tupleobject.py b/pypy/module/cpyext/tupleobject.py --- a/pypy/module/cpyext/tupleobject.py +++ b/pypy/module/cpyext/tupleobject.py @@ -47,7 +47,7 @@ def tuple_check_ref(space, ref): w_type = from_ref(space, rffi.cast(PyObject, ref.c_ob_type)) return (w_type is space.w_tuple or - space.is_true(space.issubtype(w_type, space.w_tuple))) + space.issubtype_w(w_type, space.w_tuple)) def new_empty_tuple(space, length): """ diff --git a/pypy/module/cpyext/unicodeobject.py b/pypy/module/cpyext/unicodeobject.py --- a/pypy/module/cpyext/unicodeobject.py +++ b/pypy/module/cpyext/unicodeobject.py @@ -233,7 +233,7 @@ buffer, NULL if unicode is not a Unicode object.""" # Don't use PyUnicode_Check, it will realize the object :-( w_type = from_ref(space, rffi.cast(PyObject, ref.c_ob_type)) - if not space.is_true(space.issubtype(w_type, space.w_unicode)): + if not space.issubtype_w(w_type, space.w_unicode): raise oefmt(space.w_TypeError, "expected unicode object") return PyUnicode_AS_UNICODE(space, rffi.cast(rffi.VOIDP, ref)) diff --git a/pypy/module/micronumpy/boxes.py b/pypy/module/micronumpy/boxes.py --- a/pypy/module/micronumpy/boxes.py +++ b/pypy/module/micronumpy/boxes.py @@ -348,8 +348,8 @@ def descr_view(self, space, w_dtype): from pypy.module.micronumpy.descriptor import W_Dtype try: - subclass = space.is_true(space.issubtype( - w_dtype, space.gettypefor(W_NDimArray))) + subclass = space.issubtype_w(w_dtype, + space.gettypefor(W_NDimArray)) except OperationError as e: if e.match(space, space.w_TypeError): subclass = False diff --git a/pypy/module/micronumpy/descriptor.py b/pypy/module/micronumpy/descriptor.py --- a/pypy/module/micronumpy/descriptor.py +++ b/pypy/module/micronumpy/descriptor.py @@ -1081,7 +1081,7 @@ if w_dtype is dtype.w_box_type: return _set_metadata_and_copy(space, w_metadata, dtype, copy) if space.isinstance_w(w_dtype, space.w_type) and \ - space.is_true(space.issubtype(w_dtype, dtype.w_box_type)): + space.issubtype_w(w_dtype, dtype.w_box_type): return _set_metadata_and_copy( space, w_metadata, W_Dtype(dtype.itemtype, w_dtype, elsize=0), copy) if space.isinstance_w(w_dtype, space.w_type): diff --git a/pypy/module/micronumpy/ndarray.py b/pypy/module/micronumpy/ndarray.py --- a/pypy/module/micronumpy/ndarray.py +++ b/pypy/module/micronumpy/ndarray.py @@ -969,8 +969,7 @@ def descr_view(self, space, w_dtype=None, w_type=None): if not w_type and w_dtype: try: - if space.is_true(space.issubtype( - w_dtype, space.gettypefor(W_NDimArray))): + if space.issubtype_w(w_dtype, space.gettypefor(W_NDimArray)): w_type = w_dtype w_dtype = None except OperationError as e: diff --git a/pypy/module/micronumpy/ufuncs.py b/pypy/module/micronumpy/ufuncs.py --- a/pypy/module/micronumpy/ufuncs.py +++ b/pypy/module/micronumpy/ufuncs.py @@ -66,10 +66,10 @@ lhs_for_subtype = w_lhs rhs_for_subtype = w_rhs #it may be something like a FlatIter, which is not an ndarray - if not space.is_true(space.issubtype(lhs_type, w_ndarray)): + if not space.issubtype_w(lhs_type, w_ndarray): lhs_type = space.type(w_lhs.base) lhs_for_subtype = w_lhs.base - if not space.is_true(space.issubtype(rhs_type, w_ndarray)): + if not space.issubtype_w(rhs_type, w_ndarray): rhs_type = space.type(w_rhs.base) rhs_for_subtype = w_rhs.base diff --git a/pypy/objspace/descroperation.py b/pypy/objspace/descroperation.py --- a/pypy/objspace/descroperation.py +++ b/pypy/objspace/descroperation.py @@ -347,7 +347,7 @@ w_right_src, w_right_impl = space.lookup_in_type_where(w_typ2, '__rpow__') # sse binop_impl if (w_left_src is not w_right_src - and space.is_true(space.issubtype(w_typ2, w_typ1))): + and space.issubtype_w(w_typ2, w_typ1)): if (w_left_src and w_right_src and not space.abstract_issubclass_w(w_left_src, w_right_src) and not space.abstract_issubclass_w(w_typ1, w_right_src)): @@ -454,8 +454,11 @@ assert isinstance(w_result, W_AbstractIntObject) return w_result.descr_hash(space) + def issubtype_w(space, w_sub, w_type): + return space._type_issubtype(w_sub, w_type) + def issubtype(space, w_sub, w_type): - return space._type_issubtype(w_sub, w_type) + return space.wrap(space._type_issubtype(w_sub, w_type)) @specialize.arg_or_var(2) def isinstance_w(space, w_inst, w_type): @@ -524,7 +527,7 @@ if ((seq_bug_compat and w_typ1.flag_sequence_bug_compat and not w_typ2.flag_sequence_bug_compat) # the non-bug-compat part is the following check: - or space.is_true(space.issubtype(w_typ2, w_typ1))): + or space.issubtype_w(w_typ2, w_typ1)): if (not space.abstract_issubclass_w(w_left_src, w_right_src) and not space.abstract_issubclass_w(w_typ1, w_right_src)): w_obj1, w_obj2 = w_obj2, w_obj1 diff --git a/pypy/objspace/std/objspace.py b/pypy/objspace/std/objspace.py --- a/pypy/objspace/std/objspace.py +++ b/pypy/objspace/std/objspace.py @@ -650,7 +650,7 @@ def _type_issubtype(self, w_sub, w_type): if isinstance(w_sub, W_TypeObject) and isinstance(w_type, W_TypeObject): - return self.wrap(w_sub.issubtype(w_type)) + return w_sub.issubtype(w_type) raise oefmt(self.w_TypeError, "need type objects") @specialize.arg_or_var(2) diff --git a/pypy/objspace/std/transparent.py b/pypy/objspace/std/transparent.py --- a/pypy/objspace/std/transparent.py +++ b/pypy/objspace/std/transparent.py @@ -52,15 +52,15 @@ raise oefmt(space.w_TypeError, "controller should be function") if isinstance(w_type, W_TypeObject): - if space.is_true(space.issubtype(w_type, space.gettypeobject(Function.typedef))): + if space.issubtype_w(w_type, space.gettypeobject(Function.typedef)): return W_TransparentFunction(space, w_type, w_controller) - if space.is_true(space.issubtype(w_type, space.gettypeobject(PyTraceback.typedef))): + if space.issubtype_w(w_type, space.gettypeobject(PyTraceback.typedef)): return W_TransparentTraceback(space, w_type, w_controller) - if space.is_true(space.issubtype(w_type, space.gettypeobject(PyFrame.typedef))): + if space.issubtype_w(w_type, space.gettypeobject(PyFrame.typedef)): return W_TransparentFrame(space, w_type, w_controller) - if space.is_true(space.issubtype(w_type, space.gettypeobject(GeneratorIterator.typedef))): + if space.issubtype_w(w_type, space.gettypeobject(GeneratorIterator.typedef)): return W_TransparentGenerator(space, w_type, w_controller) - if space.is_true(space.issubtype(w_type, space.gettypeobject(PyCode.typedef))): + if space.issubtype_w(w_type, space.gettypeobject(PyCode.typedef)): return W_TransparentCode(space, w_type, w_controller) if w_type.layout.typedef is space.w_object.layout.typedef: return W_Transparent(space, w_type, w_controller) diff --git a/pypy/objspace/test/test_descroperation.py b/pypy/objspace/test/test_descroperation.py --- a/pypy/objspace/test/test_descroperation.py +++ b/pypy/objspace/test/test_descroperation.py @@ -25,7 +25,7 @@ pass return Base, Sub""") w_base, w_sub = space.unpackiterable(w_tup) - assert space.is_true(space.issubtype(w_sub, w_base)) + assert space.issubtype_w(w_sub, w_base) w_inst = space.call_function(w_sub) assert space.isinstance_w(w_inst, w_base) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit