def tab_rowstack(ListOfTabArrays, mode='nulls'):
    """
    "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)

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

    coloring = {}
    for a in ListOfTabArrays:
        for k in a.coloring:
            if k in coloring.keys():
                coloring[k] = utils.uniqify(coloring[k] + a.coloring[k])
            else:
                coloring[k] = a.coloring[k]
    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
def tab_rowstack ( ListOfTabArrays , mode = 'nulls' ) : data = spreadsheet . rowstack ( ListOfTabArrays , mode = mode ) coloring = { } for a in ListOfTabArrays : for k in a . coloring : if k in coloring . keys ( ) : coloring [ k ] = utils . uniqify ( coloring [ k ] + a . coloring [ k ] ) else : coloring [ k ] = a . coloring [ k ] 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
"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)