def get_descrs(arrays, col_name_map):
 out_descrs = []
 for (out_name, in_names) in six.iteritems(col_name_map):
  in_cols = [arr[name] for (arr, name) in zip(arrays, in_names) if (name is not None)]
  names = [name for name in in_names if (name is not None)]
  try:
   dtype = common_dtype(in_cols)
  except TableMergeError as tme:
   raise TableMergeError(u"The '{0}' columns have incompatible types: {1}".format(names[0], tme._incompat_types))
  uniq_shapes = set((col.shape[1:] for col in in_cols))
  if (len(uniq_shapes) != 1):
   raise TableMergeError(u'Key columns {0!r} have different shape'.format(name))
  shape = uniq_shapes.pop()
  out_descrs.append((fix_column_name(out_name), dtype, shape))
 return out_descrs

def get_descrs ( arrays , col_name_map ) : out_descrs = [ ] for ( out_name , in_names ) in six . iteritems ( col_name_map ) : in_cols = [ arr [ name ] for ( arr , name ) in zip ( arrays , in_names ) if ( name is not None ) ] names = [ name for name in in_names if ( name is not None ) ] try : dtype = common_dtype ( in_cols ) except TableMergeError as tme : raise TableMergeError ( u"The '{0}' columns have incompatible types: {1}" . format ( names [ 0 ] , tme . _incompat_types ) ) uniq_shapes = set ( ( col . shape [ 1 : ] for col in in_cols ) ) if ( len ( uniq_shapes ) != 1 ) : raise TableMergeError ( u'Key columns {0!r} have different shape' . format ( name ) ) shape = uniq_shapes . pop ( ) out_descrs . append ( ( fix_column_name ( out_name ) , dtype , shape ) ) return out_descrs
find the dtypes descrs resulting from merging the list of arrays dtypes .