class_docstr: HACK(geoffrey): This is a temporary fix to support Ray 2.1.0.
  
  Specifically, this Tuner ensures that TunerInternalRay210 is called by the class.
  For more details, see TunerInternalRay210.
class_docstr_tok: ["HACK","(","geoffrey",")",":","This","is","a","temporary","fix","to","support","Ray","2.1.0",".","Specifically",",","this","Tuner","ensures","that","TunerInternalRay210","is","called","by","the","class",".","For","more","details",",","see","TunerInternalRay210","."]
docstr: Restores Tuner after a previously failed run.
  
  All trials from the existing run will be added to the result table. The
  argument flags control how existing but unfinished or errored trials are
  resumed.
  
  Finished trials are always added to the overview table. They will not be
  resumed.
  
  Unfinished trials can be controlled with the ``resume_unfinished`` flag.
  If ``True`` (default), they will be continued. If ``False``, they will
  be added as terminated trials (even if they were only created and never
  trained).
  
  Errored trials can be controlled with the ``resume_errored`` and
  ``restart_errored`` flags. The former will resume errored trials from
  their latest checkpoints. The latter will restart errored trials from
  scratch and prevent loading their last checkpoints.
  
  Args:
      path: The path where the previous failed run is checkpointed.
          This information could be easily located near the end of the
          console output of previous run.
          Note: depending on whether ray client mode is used or not,
          this path may or may not exist on your local machine.
      resume_unfinished: If True, will continue to run unfinished trials.
      resume_errored: If True, will re-schedule errored trials and try to
          restore from their latest checkpoints.
      restart_errored: If True, will re-schedule errored trials but force
          restarting them from scratch (no checkpoint will be loaded).
docstr_tok: ["Restores","Tuner","after","a","previously","failed","run",".","All","trials","from","the","existing","run","will","be","added","to","the","result","table",".","The","argument","flags","control","how","existing","but","unfinished","or","errored","trials","are","resumed",".","Finished","trials","are","always","added","to","the","overview","table",".","They","will","not","be","resumed",".","Unfinished","trials","can","be","controlled","with","the","``","resume_unfinished","``","flag",".","If","``","True","``","(","default",")",",","they","will","be","continued",".","If","``","False","``",",","they","will","be","added","as","terminated","trials","(","even","if","they","were","only","created","and","never","trained",")",".","Errored","trials","can","be","controlled","with","the","``","resume_errored","``","and","``","restart_errored","``","flags",".","The","former","will","resume","errored","trials","from","their","latest","checkpoints",".","The","latter","will","restart","errored","trials","from","scratch","and","prevent","loading","their","last","checkpoints",".","Args",":","path",":","The","path","where","the","previous","failed","run","is","checkpointed",".","This","information","could","be","easily","located","near","the","end","of","the","console","output","of","previous","run",".","Note",":","depending","on","whether","ray","client","mode","is","used","or","not",",","this","path","may","or","may","not","exist","on","your","local","machine",".","resume_unfinished",":","If","True",",","will","continue","to","run","unfinished","trials",".","resume_errored",":","If","True",",","will","re-schedule","errored","trials","and","try","to","restore","from","their","latest","checkpoints",".","restart_errored",":","If","True",",","will","re-schedule","errored","trials","but","force","restarting","them","from","scratch","(","no","checkpoint","will","be","loaded",")","."]
code: def restore(
      cls,
      path: str,
      resume_unfinished: bool = True,
      resume_errored: bool = False,
      restart_errored: bool = False,
  ) -> "Tuner":
      """Restores Tuner after a previously failed run.
  
      All trials from the existing run will be added to the result table. The
      argument flags control how existing but unfinished or errored trials are
      resumed.
  
      Finished trials are always added to the overview table. They will not be
      resumed.
  
      Unfinished trials can be controlled with the ``resume_unfinished`` flag.
      If ``True`` (default), they will be continued. If ``False``, they will
      be added as terminated trials (even if they were only created and never
      trained).
  
      Errored trials can be controlled with the ``resume_errored`` and
      ``restart_errored`` flags. The former will resume errored trials from
      their latest checkpoints. The latter will restart errored trials from
      scratch and prevent loading their last checkpoints.
  
      Args:
          path: The path where the previous failed run is checkpointed.
              This information could be easily located near the end of the
              console output of previous run.
              Note: depending on whether ray client mode is used or not,
              this path may or may not exist on your local machine.
          resume_unfinished: If True, will continue to run unfinished trials.
          resume_errored: If True, will re-schedule errored trials and try to
              restore from their latest checkpoints.
          restart_errored: If True, will re-schedule errored trials but force
              restarting them from scratch (no checkpoint will be loaded).
      """
      resume_config = _ResumeConfig(
          resume_unfinished=resume_unfinished,
          resume_errored=resume_errored,
          restart_errored=restart_errored,
      )
  
      if not ray.util.client.ray.is_connected():
          tuner_internal = TunerInternalRay210(
              restore_path=path, resume_config=resume_config
          )
          return TunerRay210(_tuner_internal=tuner_internal)
      else:
          tuner_internal = _force_on_current_node(
              ray.remote(num_cpus=0)(TunerInternalRay210)
          ).remote(restore_path=path, resume_config=resume_config)
          return TunerRay210(_tuner_internal=tuner_internal)
  
file_path: ludwig/ludwig/backend/_ray210_compat.py
imports: import math
  from typing import Any, Callable, Dict, Optional, Type, TYPE_CHECKING, Union
  import ray
  from ray.air.config import RunConfig
  from ray.tune.execution.trial_runner import _ResumeConfig
  from ray.tune.impl.tuner_internal import TunerInternal
  from ray.tune.trainable import Trainable
  from ray.tune.tune_config import TuneConfig
  from ray.tune.tuner import _SELF, _TUNER_INTERNAL, Tuner
  from ray.tune.utils.node import _force_on_current_node
label_desc: Use image node_id 2 for calling the TunerRay210 obj's underlying member method code with example usage: obj.restore(cls, path, resume_unfinished, resume_errored, restart_errored) and returns: TunerRay210, TunerRay210