def unpack_fields(space, w_fields): fields_w = space.unpackiterable(w_fields) fields = [] for w_tup in fields_w: l_w = space.unpackiterable(w_tup) if not len(l_w) == 2: raise OperationError(space.w_ValueError, space.wrap("Expected list of 2-size tuples")) name = space.str_w(l_w[0]) tp = unpack_to_size_alignment(space, l_w[1]) fields.append((name, tp)) return fields
def descr_new_array(space, w_type, w_shape): itemtp = unpack_to_size_alignment(space, w_shape) array_type = get_array_cache(space).get_array_type(itemtp) return space.wrap(array_type)