class_docstr: The implementation of a custom hyperparameter tuning algorithm.
  
  To implement your specific hyperparameter tuning approach, subclass ``SearchMethod``
  overriding the event handler methods.
  
  Each event handler, except :meth:`progress() <determined.searcher.SearchMethod.progress>`
  returns a list of operations (``List[Operation]``) that will be submitted to master for
  processing.
  
  Currently, we support the following :class:`~Operation`:
  
  - :class:`~Create` - starts a new trial with a unique trial id and a set of hyperparameter
    values.
  - :class:`~ValidateAfter` - sets number of steps (i.e., batches or epochs) after which a
    validation is run for a trial with a given id.
  - :class:`~Progress` - updates the progress of the multi-trial experiment to the master.
  - :class:`~Close` - closes a trial with a given id.
  - :class:`~Shutdown` - closes the experiment.
  
  .. note::
  
      Do not modify ``searcher_state`` passed into event handlers.
class_docstr_tok: ["The","implementation","of","a","custom","hyperparameter","tuning","algorithm",".","To","implement","your","specific","hyperparameter","tuning","approach",",","subclass","``","SearchMethod","``","overriding","the","event","handler","methods",".","Each","event","handler",",","except",":","meth",":","`","progress","(",")","<","determined.searcher.SearchMethod.progress",">","`","returns","a","list","of","operations","(","``","List","[","Operation","]","``",")","that","will","be","submitted","to","master","for","processing",".","Currently",",","we","support","the","following",":","class",":","`","~Operation","`",":","-",":","class",":","`","~Create","`","-","starts","a","new","trial","with","a","unique","trial","id","and","a","set","of","hyperparameter","values",".","-",":","class",":","`","~ValidateAfter","`","-","sets","number","of","steps","(","i.e.",",","batches","or","epochs",")","after","which","a","validation","is","run","for","a","trial","with","a","given","id",".","-",":","class",":","`","~Progress","`","-","updates","the","progress","of","the","multi-trial","experiment","to","the","master",".","-",":","class",":","`","~Close","`","-","closes","a","trial","with","a","given","id",".","-",":","class",":","`","~Shutdown","`","-","closes","the","experiment",".","..","note",":",":","Do","not","modify","``","searcher_state","``","passed","into","event","handlers","."]
docstr: Saves method-specific state
docstr_tok: ["Saves","method-specific","state"]
code: def save_method_state(self, path: pathlib.Path) -> None:
      """
      Saves method-specific state
      """
      pass
  
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 8 for calling the SearchMethod obj's underlying member method code with example usage: obj.save_method_state(path) without return types