def tab_rowstack(ListOfTabArrays, mode='<STR_LIT>'):
data = spreadsheet.rowstack(ListOfTabArrays, mode=mode)<EOL>coloring = {}<EOL>for a in ListOfTabArrays:<EOL><INDENT>for k in a.coloring:<EOL><INDENT>if k in coloring.keys():<EOL><INDENT>coloring[k] = utils.uniqify(coloring[k] + a.coloring[k])<EOL><DEDENT>else:<EOL><INDENT>coloring[k] = a.coloring[k]<EOL><DEDENT><DEDENT><DEDENT>for k in coloring.keys():<EOL><INDENT>s = [x for x in coloring[k] if x in data.dtype.names]<EOL>if len(s) > <NUM_LIT:0>:<EOL><INDENT>coloring[k] = s<EOL><DEDENT>else:<EOL><INDENT>coloring.pop(k)<EOL><DEDENT><DEDENT>data = data.view(tabarray)<EOL>data.coloring = coloring<EOL>return data<EOL>
"Vertical stacking" of tabarrays, e.g. adding rows.

Wrapper for :func:`tabular.spreadsheet.rowstack` that deals with the 
coloring and returns the result as a tabarray.

Method calls::

    data = tabular.spreadsheet.rowstack(ListOfTabArrays, mode=mode)