class_docstr: Base class for various iteration possibilities. This decides what configuration should be run on what budget
  next. Typical choices are e.g. successive halving. Results from runs are processed and (depending on the
  implementations) determine the further development.
docstr: function to return the next configuration and budget to run.
  
  This function is called from HB_master, don't call this from
  your script.
  
  It returns None if this run of SH is finished or there are
  pending jobs that need to finish to progress to the next stage.
  
  If there are empty slots to be filled in the current SH stage
  (which never happens in the original SH version), a new
  configuration will be sampled and scheduled to run next.
docstr_tok: ["function","to","return","the","next","configuration","and","budget","to","run",".","This","function","is","called","from","HB_master",",","do","n't","call","this","from","your","script",".","It","returns","None","if","this","run","of","SH","is","finished","or","there","are","pending","jobs","that","need","to","finish","to","progress","to","the","next","stage",".","If","there","are","empty","slots","to","be","filled","in","the","current","SH","stage","(","which","never","happens","in","the","original","SH","version",")",",","a","new","configuration","will","be","sampled","and","scheduled","to","run","next","."]
code: def get_next_run(self):
      """
      function to return the next configuration and budget to run.
  
      This function is called from HB_master, don't call this from
      your script.
  
      It returns None if this run of SH is finished or there are
      pending jobs that need to finish to progress to the next stage.
  
      If there are empty slots to be filled in the current SH stage
      (which never happens in the original SH version), a new
      configuration will be sampled and scheduled to run next.
      """
  
      if self.is_finished:
          return None
  
      for k, v in self.data.items():
          if v.status == "QUEUED":
              assert (
                  v.budget == self.budgets[self.stage]
              ), "Configuration budget does not align with current stage!"
              v.status = "RUNNING"
              self.num_running += 1
              return (k, v.config, v.budget)
  
      # check if there are still slots to fill in the current stage and return that
      if (
          self.actual_num_configs[self.stage]
          < self.num_configs[self.stage]
      ):
          self.add_configuration()
          return self.get_next_run()
  
      if self.num_running == 0:
          # at this point a stage is completed
          self.process_results()
          return self.get_next_run()
  
      return None
  
imports: import sys
  import logging
  import numpy
  import pdb
  from hpbandster.core.dispatcher import Job
label_desc: Use image node_id 4 for calling the BaseIteration obj's underlying member method code with example usage: obj.get_next_run() and returns: None, None, self, self, k,  v,  v