def METHOD_NAME(self) -> Dataset:
    if self.subset not in ['MIT', 'STEREO', '50K', 'FULL']:
        raise ValueError("Valid Subset names are MIT, STEREO and 50K.")
    if self.subset == 'MIT':
        dataset_url = USPTO_MIT_URL
    if self.subset == 'STEREO':
        dataset_url = USPTO_STEREO_URL
    if self.subset == '50K':
        dataset_url = USPTO_50K_URL
    if self.subset == 'FULL':
        dataset_url = USPTO_FULL_URL
        if self.splitter == 'SpecifiedSplitter':
            raise ValueError(
                "There is no pre computed split for the full dataset, use a custom split instead!"
            )
    dataset_file = os.path.join(self.data_dir, self.name + '.csv')
    if not os.path.exists(dataset_file):
        logger.info("Downloading dataset...")
        dc.utils.data_utils.download_url(url=dataset_url,
                                         dest_dir=self.data_dir)
        logger.info("Dataset download complete.")
    loader = dc.data.CSVLoader(tasks=self.tasks,
                               feature_field="reactions",
                               featurizer=self.featurizer)
    return loader.METHOD_NAME(dataset_file, shard_size=8192)