def vstack(tup):
<EOL>arrays = list(tup)<EOL>for i in range(len(arrays)):<EOL><INDENT>if arrays[i].ndim is <NUM_LIT:1>:<EOL><INDENT>arrays[i] = arrays[i][np.newaxis, :]<EOL><DEDENT><DEDENT>return concatenate(tup, axis=<NUM_LIT:0>)<EOL>
Stack arrays in sequence vertically (row wise), 
    handling ``RemoteArray`` and ``DistArray`` without moving data.

    Args:
      tup (sequence of array_like)

    Returns: 
      res: `ndarray`, if inputs were all local
           `RemoteArray`, if inputs were all on the same remote engine
           `DistArray`, if inputs were already scattered on different engines