@classmethod
def slice(cls, *args, **kwargs):
    """Take a slice of a DataSetFamily to produce a dataset
        indexed by asset and date.

        Parameters
        ----------
        *args
        **kwargs
            The coordinates to fix along each extra dimension.

        Returns
        -------
        dataset : DataSet
            A regular pipeline dataset indexed by asset and date.

        Notes
        -----
        The extra dimensions coords used to produce the result are available
        under the ``extra_coords`` attribute.
        """
    coords, hash_key = cls._canonical_key(args, kwargs)
    try:
        return cls._slice_cache[hash_key]
    except KeyError:
        pass
    Slice = cls._make_dataset(coords)
    cls._slice_cache[hash_key] = Slice
    return Slice
