docs: def split(self, split_name):
          """ Return the training and validation indices for the requested split.
  
          Parameters
          ----------
          split_name : str
              name of the split
  
          Returns
          -------
          :obj:`numpy.ndarray`
              array of training indices in the global dataset
          :obj:`numpy.ndarray`
              array of validation indices in the global dataset
          dict
              metadata about the split
          """
          if not self.has_split(split_name):
              raise ValueError('Split %s does not exist!' %(split_name))
          metadata_filename = self.split_metadata_filename(split_name)
          train_filename = self.train_indices_filename(split_name)
          val_filename = self.val_indices_filename(split_name)        
  
          metadata = json.load(open(metadata_filename, 'r'))
          train_indices = np.load(train_filename)['arr_0']
          val_indices = np.load(val_filename)['arr_0']
          return train_indices, val_indices, metadata