code: def update_hyperopt_params_with_defaults(
      hyperopt_params: HyperoptConfigDict,
  ) -> None:
      """Updates user's Ludwig config with default hyperopt parameters."""
      from ludwig.hyperopt.execution import executor_registry
  
      set_default_value(hyperopt_params, EXECUTOR, {})
      set_default_value(hyperopt_params, SPLIT, VALIDATION)
      set_default_value(hyperopt_params, "output_feature", COMBINED)
      set_default_value(hyperopt_params, METRIC, LOSS)
      set_default_value(hyperopt_params, GOAL, MINIMIZE)
  
      set_default_values(
          hyperopt_params[EXECUTOR],
          {TYPE: RAY, NUM_SAMPLES: 1, MAX_CONCURRENT_TRIALS: AUTO},
      )
  
      if (
          hyperopt_params[EXECUTOR].get("trial_driver_resources")
          is None
      ):
          hyperopt_params[EXECUTOR]["trial_driver_resources"] = {
              "CPU": 1,
              "GPU": 0,
          }
  
      executor = get_from_registry(
          hyperopt_params[EXECUTOR][TYPE], executor_registry
      )
      executor_defaults = {
          k: v
          for k, v in executor.__dict__.items()
          if k in get_class_attributes(executor)
      }
      set_default_values(
          hyperopt_params[EXECUTOR],
          executor_defaults,
      )
  
imports: import copy
  import dataclasses
  import json
  import logging
  import os
  import warnings
  from typing import Any, Dict
  from ludwig.api_annotations import DeveloperAPI
  from ludwig.constants import AUTO, COMBINED, EXECUTOR, GOAL, GRID_SEARCH, HYPEROPT, INPUT_FEATURES, LOSS, MAX_CONCURRENT_TRIALS, METRIC, MINIMIZE, NAME, NUM_SAMPLES, OUTPUT_FEATURES, PARAMETERS, PREPROCESSING, RAY, SPACE, SPLIT, TYPE, VALIDATION
  from ludwig.globals import HYPEROPT_STATISTICS_FILE_NAME
  from ludwig.hyperopt.results import HyperoptResults, TrialResults
  from ludwig.types import HyperoptConfigDict, ModelConfigDict
  from ludwig.utils.data_utils import save_json
  from ludwig.utils.misc_utils import get_class_attributes, get_from_registry, merge_dict, set_default_value, set_default_values
  from ludwig.utils.print_utils import print_boxed
label_desc: Use image node_id 12 for calling a global function with example usage: update_hyperopt_params_with_defaults(hyperopt_params) without return types