code: def tab_colstack(ListOfTabArrays, mode='abort'):
      
      (data, naming) = spreadsheet.colstack(ListOfTabArrays, mode=mode, 
                                            returnnaming=True)
          
      coloring = {}
      for (i, a) in enumerate(ListOfTabArrays):
          namedict = dict([(x,y) for (j,x,y) in naming if i == j])
          for k in a.coloring:
              s = [namedict[kk] for kk in a.coloring[k]]
              if k in coloring.keys():
                  coloring[k] = utils.uniqify(coloring[k] + s)
              else:
                  coloring[k] = s
  
      for k in coloring.keys():
          s = [x for x in coloring[k] if x in data.dtype.names]
          if len(s) > 0:
              coloring[k] = s
          else:
              coloring.pop(k)
  
      data = data.view(tabarray)
      data.coloring = coloring
      return data
docs: "Horizontal stacking" of tabarrays, e.g. adding columns.
  
      Wrapper for :func:`tabular.spreadsheet.colstack` that deals with the 
      coloring and returns the result as a tabarray.
  
      Method calls::
  
          data = tabular.spreadsheet.colstack(ListOfTabArrays, mode=mode)