Ejemplo n.º 1
0
def exception_issubclass_w(space, w_cls1, w_cls2):
    if isinstance(w_cls1, W_ClassObject):
        if isinstance(w_cls2, W_ClassObject):
            return w_cls1.is_subclass_of(w_cls2)
        return False
    if isinstance(w_cls2, W_ClassObject):
        return False
    return BaseObjSpace.exception_issubclass_w(space, w_cls1, w_cls2)
Ejemplo n.º 2
0
def exception_issubclass_w(space, w_cls1, w_cls2):
    if isinstance(w_cls1, W_ClassObject):
        if isinstance(w_cls2, W_ClassObject):
            return w_cls1.is_subclass_of(w_cls2)
        return False
    if isinstance(w_cls2, W_ClassObject):
        return False
    return BaseObjSpace.exception_issubclass_w(space, w_cls1, w_cls2)
Ejemplo n.º 3
0
def exception_issubclass_w(space, w_cls1, w_cls2):
    cls1 = space.interpclass_w(w_cls1)
    cls2 = space.interpclass_w(w_cls2)
    if isinstance(cls1, W_ClassObject):
        if isinstance(cls2, W_ClassObject):
            return cls1.is_subclass_of(cls2)
        return False
    if isinstance(cls2, W_ClassObject):
        return False
    return BaseObjSpace.exception_issubclass_w(space, w_cls1, w_cls2)
Ejemplo n.º 4
0
def exception_issubclass_w(space, w_cls1, w_cls2):
    cls1 = space.interpclass_w(w_cls1)
    cls2 = space.interpclass_w(w_cls2)
    if isinstance(cls1, W_ClassObject):
        if isinstance(cls2, W_ClassObject):
            return cls1.is_subclass_of(cls2)
        return False
    if isinstance(cls2, W_ClassObject):
        return False
    return BaseObjSpace.exception_issubclass_w(space, w_cls1, w_cls2)
Ejemplo n.º 5
0
def exception_issubclass_w(space, w_cls1, w_cls2):
    if (space.type(w_cls1) is space.w_type
            and space.type(w_cls2) is space.w_type):
        return BaseObjSpace.exception_issubclass_w(space, w_cls1, w_cls2)
    #
    if (not exception_is_valid_class_w(space, w_cls2)
            or not exception_is_valid_class_w(space, w_cls1)):
        return False
    #
    # The rest is the rare slow case.  Use the general logic of issubclass()
    # (issue #3149).  CPython 3.x doesn't do that (but there is a
    # many-years issue report: https://bugs.python.org/issue12029), and
    # there are probably tests, so we won't call abstract_issubclass_w()
    # either in PyPy3.
    try:
        return abstract_issubclass_w(space, w_cls1, w_cls2, True)
    except OperationError as e:
        if e. async (space):
            raise
        return False
Ejemplo n.º 6
0
def exception_issubclass_w(space, w_cls1, w_cls2):
    return BaseObjSpace.exception_issubclass_w(space, w_cls1, w_cls2)