def __init__(self,
               stage_1_dir,
               configuration: Configuration = Configuration(),
               transformation_funcs=(),
               filter_funcs=(),
               user_defined_split_range=(),
               num_shards=1000,
               seed=0,
               dataset_size='small',
               deduplicate=False):
    # dataset_size can only be 'small', 'med' or 'large'.
    valid_dataset_size = {'small', 'med', 'large'}
    if dataset_size not in valid_dataset_size:
      raise ValueError('{} not in {}'.format(dataset_size,
                                             str(valid_dataset_size)))
    if dataset_size == 'small':
      urls = self._URLS_SMALL
    elif dataset_size == 'med':
      urls = self._URLS_MED
    else:
      urls = self._URLS_LARGE
    self.dataset_size = dataset_size
    super().__init__(self._DATASET_NAME, urls, self._GIT_URL,
                     self._DATASET_DESCRIPTION, stage_1_dir,
                     transformation_funcs=transformation_funcs,
                     filter_funcs=filter_funcs,
                     user_defined_split_range=user_defined_split_range,
                     num_shards=num_shards, seed=seed,
                     configuration=configuration, deduplicate=deduplicate)