class_docstr: Interface for implementing a Trial Scheduler class.
  
  Note to Tune developers: If a new scheduler is added, please update
  `air/_internal/usage.py`.
docstr: Called to choose a new trial to run.
  
  This should return one of the trials in tune_controller that is in
  the PENDING or PAUSED state. This function must be idempotent.
  
  If no trial is ready, return None.
docstr_tok: ["Called","to","choose","a","new","trial","to","run",".","This","should","return","one","of","the","trials","in","tune_controller","that","is","in","the","PENDING","or","PAUSED","state",".","This","function","must","be","idempotent",".","If","no","trial","is","ready",",","return","None","."]
code: def choose_trial_to_run(
      self, tune_controller: "TuneController"
  ) -> Optional[Trial]:
      """Called to choose a new trial to run.
  
      This should return one of the trials in tune_controller that is in
      the PENDING or PAUSED state. This function must be idempotent.
  
      If no trial is ready, return None."""
  
      raise NotImplementedError
  
imports: from typing import Dict, Optional, TYPE_CHECKING
  from ray.air._internal.usage import tag_scheduler
  from ray.tune.result import DEFAULT_METRIC
  from ray.tune.experiment import Trial
  from ray.util.annotations import DeveloperAPI, PublicAPI
label_desc: Use image node_id 10 for calling the TrialScheduler obj's underlying member method code with example usage: obj.choose_trial_to_run(tune_controller) without return types