class_docstr: Generate support sets from a dataset.
  
  Iterates over tasks and trials. For each trial, picks one support from
  each task, and returns in a randomized order
class_docstr_tok: ["Generate","support","sets","from","a","dataset",".","Iterates","over","tasks","and","trials",".","For","each","trial",",","picks","one","support","from","each","task",",","and","returns","in","a","randomized","order"]
docstr: Sample next support.
  
  Supports are sampled from the tasks in a random order. Each support is
  drawn entirely from within one task.
docstr_tok: ["Sample","next","support",".","Supports","are","sampled","from","the","tasks","in","a","random","order",".","Each","support","is","drawn","entirely","from","within","one","task","."]
code: def next(self):
      """Sample next support.
  
      Supports are sampled from the tasks in a random order. Each support is
      drawn entirely from within one task.
      """
      if self.trial_num == self.n_trials:
          raise StopIteration
      else:
          task = self.perm_tasks[
              self.task_num
          ]  # Get id from permutation
          # support = self.supports[task][self.trial_num]
          support = get_single_task_support(
              self.dataset,
              n_pos=self.n_pos,
              n_neg=self.n_neg,
              task=task,
              replace=False,
          )
          # Increment and update logic
          self.task_num += 1
          if self.task_num == self.n_tasks:
              self.task_num = 0  # Reset
              self.perm_tasks = np.random.permutation(
                  self.tasks
              )  # Permute again
              self.trial_num += 1  # Upgrade trial index
  
          return (task, support)
  
imports: import logging
  import time
  import numpy
  from deepchem.data import NumpyDataset
label_desc: Use image node_id 3 for calling the SupportGenerator obj's underlying member method code with example usage: obj.next() and returns: task,  support