def METHOD_NAME(self, splits: Union[str, List] = ['train', 'test', 'val']) -> None:
    """Prepare the dataset."""
    if isinstance(splits, str):
        splits = [splits]
    assert set(splits).issubset(set(['train', 'test',
                                     'val'])), 'Invalid split name'
    for split in splits:
        self.loop(split, getattr(self, f'{split}_preparer'))
    self.clean()
    self.generate_config()