def unbox_tuple(self, boxed_tuple, tuple_t, target = "tuple_value"):
    if isinstance(tuple_t, TupleT):
      elt_types = tuple(tuple_t.elt_types)
    elif isinstance(tuple_t, ClosureT):
      elt_types = tuple(tuple_t.arg_types)
    else:
      assert False, "Expected tuple type, got %s" % tuple_t
     
    c_struct_t = self.struct_type_from_fields(elt_types)
    unboxed_elts = []
    for i in xrange(len(elt_types)):
      elt_t = elt_types[i]
      elt_typename = self.to_ctype(elt_t)
      elt = self.fresh_var(elt_typename, "unboxed_elt%d" % i, 
                           self.tuple_elt(boxed_tuple, i, elt_types[i], boxed=True))
      unboxed_elts.append(elt)
    elts_str = ", ".join(unboxed_elts)
    return self.fresh_var(c_struct_t, target, "{" + elts_str + "}")
dataset/ETHPy150Open iskandr/parakeet/parakeet/c_backend/pymodule_compiler.py/PyModuleCompiler.unbox_tuple/original