Save array to local persistent store

        Makes a parquet dataset out of the data using zarr.
        This then becomes a data entry in the persisted datasets catalog.
        Only works locally for the moment.

        Parameters
        ----------
        source: a DataSource instance to save
        name: str or None
            Key to refer to this persisted dataset by. If not given, will
            attempt to get from the source's name
        kwargs: passed on to zarr array creation, see

def _persist(source, path, component=None, storage_options=None,
                 **kwargs):
        """Save array to local persistent store

        Makes a parquet dataset out of the data using zarr.
        This then becomes a data entry in the persisted datasets catalog.
        Only works locally for the moment.

        Parameters
        ----------
        source: a DataSource instance to save
        name: str or None
            Key to refer to this persisted dataset by. If not given, will
            attempt to get from the source's name
        kwargs: passed on to zarr array creation, see
        """
        from dask.array import to_zarr, from_array
        from ..source.zarr import ZarrArraySource
        try:
            arr = source.to_dask()
        except NotImplementedError:
            arr = from_array(source.read(), chunks=-1).rechunk('auto')
        to_zarr(arr, path, component=None,
                storage_options=storage_options, **kwargs)

        source = ZarrArraySource(path, storage_options, component)
        return source