class_docstr: Custom Searcher State.
  
  Search runners maintain this state that can be used by a ``SearchMethod``
  to inform event handling. In other words, this state can be taken into account
  when deciding which operations to return from your event handler. Do not
  modify ``SearcherState`` in your ``SearchMethod``. If your hyperparameter
  tuning algorithm needs additional state variables, add those variable to your
  ``SearchMethod`` implementation.
  
  Attributes:
      failures: number of failed trials
      trial_progress: progress of each trial as a number between 0.0 and 1.0
      trials_closed: set of completed trials
      trials_created: set of created trials
class_docstr_tok: ["Custom","Searcher","State",".","Search","runners","maintain","this","state","that","can","be","used","by","a","``","SearchMethod","``","to","inform","event","handling",".","In","other","words",",","this","state","can","be","taken","into","account","when","deciding","which","operations","to","return","from","your","event","handler",".","Do","not","modify","``","SearcherState","``","in","your","``","SearchMethod","``",".","If","your","hyperparameter","tuning","algorithm","needs","additional","state","variables",",","add","those","variable","to","your","``","SearchMethod","``","implementation",".","Attributes",":","failures",":","number","of","failed","trials","trial_progress",":","progress","of","each","trial","as","a","number","between","0.0","and","1.0","trials_closed",":","set","of","completed","trials","trials_created",":","set","of","created","trials"]
code: def from_dict(self, d: Dict[str, Any]) -> None:
      self.failures = {uuid.UUID(f) for f in d.get("failures", [])}
      self.trial_progress = {
          uuid.UUID(k): v for k, v in d.get("trialProgress", {}).items()
      }
      self.trials_closed = {
          uuid.UUID(t) for t in d.get("trialsClosed", [])
      }
      self.trials_created = {
          uuid.UUID(t) for t in d.get("trialsCreated", [])
      }
      self.last_event_id = d.get("lastEventId", 0)
      self.experiment_id = d.get("experimentId")
      self.experiment_completed = d.get("experimentCompleted", False)
      self.experiment_failed = d.get("experimentFailed", False)
  
imports: import abc
  import dataclasses
  import json
  import pathlib
  import uuid
  from abc import abstractmethod
  from enum import Enum
  from typing import Any, Dict, List, Optional, Set, Tuple
  from determined import experimental
  from determined.common.api import bindings
label_desc: Use image node_id 3 for calling the SearcherState obj's underlying member method code with example usage: obj.from_dict(d) without return types