class_docstr: Abstract base class for custom runner classes
class_docstr_tok: ["Abstract","base","class","for","custom","runner","classes"]
docstr: Checks the status of any non-terminal trials and returns their
  indices as a mapping from TrialStatus to a list of indices. Required
  for runners used with Ax ``Scheduler``.
  
  NOTE: Does not need to handle waiting between polling calls while trials
  are running; this function should just perform a single poll.
  
  Args:
      trials: Trials to poll.
  
  Returns:
      A dictionary mapping TrialStatus to a list of trial indices that have
      the respective status at the time of the polling. This does not need to
      include trials that at the time of polling already have a terminal
      (ABANDONED, FAILED, COMPLETED) status (but it may).
docstr_tok: ["Checks","the","status","of","any","non-terminal","trials","and","returns","their","indices","as","a","mapping","from","TrialStatus","to","a","list","of","indices",".","Required","for","runners","used","with","Ax","``","Scheduler","``",".","NOTE",":","Does","not","need","to","handle","waiting","between","polling","calls","while","trials","are","running",";","this","function","should","just","perform","a","single","poll",".","Args",":","trials",":","Trials","to","poll",".","Returns",":","A","dictionary","mapping","TrialStatus","to","a","list","of","trial","indices","that","have","the","respective","status","at","the","time","of","the","polling",".","This","does","not","need","to","include","trials","that","at","the","time","of","polling","already","have","a","terminal","(","ABANDONED",",","FAILED",",","COMPLETED",")","status","(","but","it","may",")","."]
code: def poll_trial_status(
      self, trials: Iterable[core.base_trial.BaseTrial]
  ) -> Dict[core.base_trial.TrialStatus, Set[int]]:
      """Checks the status of any non-terminal trials and returns their
      indices as a mapping from TrialStatus to a list of indices. Required
      for runners used with Ax ``Scheduler``.
  
      NOTE: Does not need to handle waiting between polling calls while trials
      are running; this function should just perform a single poll.
  
      Args:
          trials: Trials to poll.
  
      Returns:
          A dictionary mapping TrialStatus to a list of trial indices that have
          the respective status at the time of the polling. This does not need to
          include trials that at the time of polling already have a terminal
          (ABANDONED, FAILED, COMPLETED) status (but it may).
      """
      raise NotImplementedError(
          f"{self.__class__.__name__} does not implement a `poll_trial_status` "
          "method."
      )
  
file_path: Ax/ax/core/runner.py
imports: from __future__ import annotations
  from abc import ABC, abstractmethod
  from typing import Any, Dict, Iterable, List, Optional, Set, TYPE_CHECKING
  from ax.utils.common.base import Base
  from ax.utils.common.serialization import SerializationMixin
label_desc: Use image node_id 6 for calling the Runner obj's underlying member method code with example usage: obj.poll_trial_status(trials) without return types