@classmethod
def shape(cls, dataset):
    """
        Returns the shape of all subpaths, making it appear like a
        single array of concatenated subpaths separated by NaN values.
        """
    if not dataset.data:
        return 0, len(dataset.dimensions())
    rows, cols = 0, 0
    ds = cls._inner_dataset_template(dataset)
    for d in dataset.data:
        ds.data = d
        r, cols = ds.interface.shape(ds)
        rows += r
    return rows + len(dataset.data) - 1, cols
