Download sample data by data label. Labels can be listed by sample_data.data_urls.keys()
    :param data_label: label of data. If it is set to None, all data are downloaded
    :param destination_dir: output dir for data
    :return:

def get(data_label=None, destination_dir="."):
    """
    Download sample data by data label. Labels can be listed by sample_data.data_urls.keys()
    :param data_label: label of data. If it is set to None, all data are downloaded
    :param destination_dir: output dir for data
    :return:
    """
    try:
        os.mkdir(destination_dir)
    except:
        pass
    if data_label is None:
        data_label=data_urls.keys()

    if type(data_label) == str:
        data_label = [data_label]

    for label in data_label:
        # make all data:url have length 3
        data_url = data_urls[label]
        if type(data_url) == str:
            # back compatibility
            data_url = [data_url]
        data_url.extend([None, None])
        data_url = data_url[:3]
        url, expected_hash, hash_path = data_url

        if hash_path is None:
            hash_path = label

        try:
            computed_hash = checksum(os.path.join(destination_dir, hash_path))
        except:
            # there is probably no checksumdir module
            logger.warning("problem with sample_data.checksum()")
            computed_hash = None

        logger.info("dataset '" + label + "'")
        logger.info("expected hash: '" + str(expected_hash) + "'")
        logger.info("computed hash: '" + str(computed_hash) + "'")
        if (computed_hash is not None) and (expected_hash == computed_hash):
            logger.info("match ok - no download needed")
        else:
            logger.info("downloading")
            downzip(url, destination=destination_dir)
            logger.info("finished")
            downloaded_hash = checksum(os.path.join(destination_dir, hash_path))
            logger.info("downloaded hash: '" + str(downloaded_hash) + "'")
            if downloaded_hash != expected_hash:
                logger.warning("downloaded hash is different from expected hash\n" + \
                    "expected hash: '" + str(expected_hash) + "'\n" + \
                    "downloaded hash: '" + str(downloaded_hash) + "'\n")