Пример #1
0
def pd_range_index_getiter(context, builder, sig, args):
    """ Returns a new iterator object for RangeIndexType by delegating to range.__iter__ """
    (value, ) = args
    range_index = cgutils.create_struct_proxy(sig.args[0])(context, builder,
                                                           value)
    res = call_getiter(context, builder, RangeIndexDataType, range_index.data)
    return impl_ret_untracked(context, builder, RangeIndexType, res)
Пример #2
0
def pd_int64_index_getiter(context, builder, sig, args):
    """ Returns a new iterator object for Int64IndexType by delegating to array __iter__ """
    (value, ) = args
    int64_index = cgutils.create_struct_proxy(sig.args[0])(context, builder,
                                                           value)
    res = call_getiter(context, builder, sig.args[0].data, int64_index.data)
    return impl_ret_untracked(context, builder, Int64IndexType, res)
Пример #3
0
def make_zip_object(context, builder, sig, args):
    zip_type = sig.return_type

    assert len(args) == len(zip_type.source_types)

    zipobj = context.make_helper(builder, zip_type)

    for i, (arg, srcty) in enumerate(zip(args, sig.args)):
        zipobj[i] = call_getiter(context, builder, srcty, arg)

    res = zipobj._getvalue()
    return impl_ret_new_ref(context, builder, sig.return_type, res)
Пример #4
0
def make_enumerate_object(context, builder, sig, args):
    assert len(args) == 1 or len(args) == 2 # enumerate(it) or enumerate(it, start)
    srcty = sig.args[0]

    if len(args) == 1:
        src = args[0]
        start_val = context.get_constant(types.intp, 0)
    elif len(args) == 2:
        src = args[0]
        start_val = context.cast(builder, args[1], sig.args[1], types.intp)

    iterobj = call_getiter(context, builder, srcty, src)

    enum = context.make_helper(builder, sig.return_type)

    countptr = cgutils.alloca_once(builder, start_val.type)
    builder.store(start_val, countptr)

    enum.count = countptr
    enum.iter = iterobj

    res = enum._getvalue()
    return impl_ret_new_ref(context, builder, sig.return_type, res)
Пример #5
0
def iter_impl(context, builder, sig, args):
    ty, = sig.args
    val, = args
    iterval = call_getiter(context, builder, ty, val)
    return iterval
Пример #6
0
def iter_impl(context, builder, sig, args):
    (ty, ) = sig.args
    (val, ) = args
    iterval = call_getiter(context, builder, ty, val)
    return iterval