docstr: Save cross-experiment, and hyperparameter keys, and update their tested keys entries
docstr_tok: ["Save","cross-experiment",",","and","hyperparameter","keys",",","and","update","their","tested","keys","entries"]
code: def save_result(self):
      """Save cross-experiment, and hyperparameter keys, and update their tested keys entries"""
      self.cross_experiment_key.save_key()
      self.hyperparameter_key.save_key()
      add_to_json(
          file_path=f"{self.hyperparameter_key.tested_keys_dir}/{self.cross_experiment_key.key}.json",
          data_to_add=self.experiment_id,
          key=self.hyperparameter_key.key,
          condition=lambda _: self.hyperparameter_key.key in _.keys(),
          append_value=True,
      )
  
imports: from hyperparameter_hunter.data import OOFDataset, HoldoutDataset, TestDataset
  from hyperparameter_hunter.i_o.exceptions import EnvironmentInactiveError, EnvironmentInvalidError
  from hyperparameter_hunter.i_o.leaderboards import GlobalLeaderboard
  from hyperparameter_hunter.settings import G
  from hyperparameter_hunter.utils.file_utils import write_json, add_to_json, make_dirs, read_json
  from hyperparameter_hunter.utils.file_utils import RetryMakeDirs
  from hyperparameter_hunter.utils.general_utils import subdict
  from abc import ABCMeta, abstractmethod
  from collections import OrderedDict
  from platform import node
  import shutil
  from sys import exc_info
label_desc: Use image node_id 2 for calling the TestedKeyRecorder obj's underlying member method code with example usage: obj.save_result() without return types