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)
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)
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)
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)
def iter_impl(context, builder, sig, args): ty, = sig.args val, = args iterval = call_getiter(context, builder, ty, val) return iterval
def iter_impl(context, builder, sig, args): (ty, ) = sig.args (val, ) = args iterval = call_getiter(context, builder, ty, val) return iterval