示例#1
0
def next__SetIterObject(space, w_setiter):
    content = w_setiter.content
    if content is not None:
        if w_setiter.len != len(content):
            w_setiter.len = -1   # Make this error state sticky
            raise OperationError(space.w_RuntimeError,
                     space.wrap("Set changed size during iteration"))
        # look for the next entry
        w_result = w_setiter.next_entry()
        if w_result is not None:
            w_setiter.pos += 1
            return w_result
        # no more entries
        w_setiter.content = None
    raise OperationError(space.w_StopIteration, space.w_None)
示例#2
0
def set_remove__Set_settypedef(space, w_left, w_item):
    w_f = space.newfrozenset(make_setdata_from_w_iterable(space, w_item))
    try:
        del w_left.setdata[w_f]
    except KeyError:
        raise OperationError(space.w_KeyError,
                             space.call_method(w_item, '__repr__'))
示例#3
0
def set_remove__Set_Set(space, w_left, w_item):
    w_f = space.newfrozenset(w_item.setdata)
    try:
        del w_left.setdata[w_f]
    except KeyError:
        raise OperationError(space.w_KeyError,
                space.call_method(w_item,'__repr__'))
示例#4
0
def pow__Complex_Complex_ANY(space, w_complex1, w_complex2, thirdArg):
    if not space.is_w(thirdArg, space.w_None):
        raise OperationError(space.w_ValueError, space.wrap('complex modulo'))
    try:
        v = _w2t(space, w_complex1)
        exponent = _w2t(space, w_complex2)
        int_exponent = int(exponent[0])
        if exponent[1] == 0.0 and exponent[0] == int_exponent:
            p = _powi(v, int_exponent)
        else:
            p = _pow(v, exponent)
    except ZeroDivisionError:
        raise OperationError(space.w_ZeroDivisionError, space.wrap("0.0 to a negative or complex power"))
    except OverflowError:
        raise OperationError(space.w_OverflowError, space.wrap("complex exponentiation"))
    return _t2w(space, p)
示例#5
0
def set_remove__Set_Set(space, w_left, w_item):
    # optimization only (the general case is set_remove__Set_settypedef)
    w_f = space.newfrozenset(w_item.setdata)
    try:
        del w_left.setdata[w_f]
    except KeyError:
        raise OperationError(space.w_KeyError,
                             space.call_method(w_item, '__repr__'))
示例#6
0
def set_pop__Set(space, w_left):
    if len(w_left.setdata) == 0:
        raise OperationError(space.w_KeyError,
                                space.wrap('pop from an empty set'))
    w_keys = w_left.setdata.keys()
    w_value = w_keys[0]
    del w_left.setdata[w_value]

    return w_value
示例#7
0
def cmp__Set_settypedef(space, w_left, w_other):
    # hack hack until we get the expected result
    raise OperationError(space.w_TypeError,
            space.wrap('cannot compare sets using cmp()'))
示例#8
0
def set_remove__Set_ANY(space, w_left, w_item):
    try:
        del w_left.setdata[w_item]
    except KeyError:
        raise OperationError(space.w_KeyError,
                             space.call_method(w_item, '__repr__'))
示例#9
0
def int__Complex(space, w_complex):
    raise OperationError(space.w_TypeError, space.wrap("can't convert complex to int; use int(abs(z))"))
示例#10
0
def float__Complex(space, w_complex):
    raise OperationError(space.w_TypeError, space.wrap("can't convert complex to float; use abs(z)"))
示例#11
0
def lt__Complex_Complex(space, w_complex1, w_complex2):
    raise OperationError(space.w_TypeError, space.wrap('cannot compare complex numbers using <, <=, >, >='))
示例#12
0
def floordiv__Complex_Complex(space, w_complex1, w_complex2):
    try:
        div = _quot(_w2t(space, w_complex1), _w2t(space, w_complex2))
    except ZeroDivisionError, e:
        raise OperationError(space.w_ZeroDivisionError, space.wrap("complex floordiv()"))
示例#13
0
def mod__Complex_Complex(space, w_complex1, w_complex2):
    try:
        div = _quot(_w2t(space, w_complex1), _w2t(space, w_complex2))
    except ZeroDivisionError, e:
        raise OperationError(space.w_ZeroDivisionError, space.wrap("complex remainder"))
示例#14
0
def div__Complex_Complex(space, w_complex1, w_complex2):
    try:
        return _t2w(space, _quot(_w2t(space, w_complex1), _w2t(space, w_complex2)))
    except ZeroDivisionError, e:
        raise OperationError(space.w_ZeroDivisionError, space.wrap(str(e)))
示例#15
0
def delegate_Long2Complex(space, w_long):
    try:
        dval =  w_long.tofloat()
    except OverflowError, e:
        raise OperationError(space.w_OverflowError, space.wrap(str(e)))
示例#16
0
def cmp__Set_Set(space, w_left, w_other):
    raise OperationError(space.w_TypeError,
            space.wrap('cannot compare sets using cmp()'))