def dataset_archive(dataset, signature, data_home=None, ext=".zip"):
    """
    Checks to see if the dataset archive file exists in the data home directory,
    found with ``get_data_home``. By specifying the signature, this function
    also checks to see if the archive is the latest version by comparing the
    sha256sum of the local archive with the specified signature.

    Parameters
    ----------
    dataset : str
        The name of the dataset; should either be a folder in data home or
        specified in the yellowbrick.datasets.DATASETS variable.

    signature : str
        The SHA 256 signature of the dataset, used to determine if the archive
        is the latest version of the dataset or not.

    data_home : str, optional
        The path on disk where data is stored. If not passed in, it is looked
        up from YELLOWBRICK_DATA or the default returned by ``get_data_home``.

    ext : str, default: ".zip"
        The extension of the archive file.

    Returns
    -------
    exists : bool
        True if the dataset archive exists and is the latest version.
    """
    data_home = get_data_home(data_home)
    path = os.path.join(data_home, dataset+ext)

    if os.path.exists(path) and os.path.isfile(path):
        return sha256sum(path) == signature

    return False