code: def choose_trial_to_run(self, trial_runner):
          
  
          for hyperband in self._hyperbands:
              # band will have None entries if no resources
              # are to be allocated to that bracket.
              scrubbed = [b for b in hyperband if b is not None]
              for bracket in sorted(
                      scrubbed, key=lambda b: b.completion_percentage()):
                  for trial in bracket.current_trials():
                      if (trial.status == Trial.PENDING
                              and trial_runner.has_resources(trial.resources)):
                          return trial
          return None
docs: Fair scheduling within iteration by completion percentage.
  
          List of trials not used since all trials are tracked as state
          of scheduler. If iteration is occupied (ie, no trials to run),
          then look into next iteration.