code: def get_resource_aware_hyperopt_config(
      experiment_resources: Dict[str, Any],
      time_limit_s: Union[int, float],
      random_seed: int,
  ) -> Dict[str, Any]:
      """Returns a Ludwig config with the hyperopt section populated with appropriate parameters.
  
      Hyperopt parameters are intended to be appropriate for the given resources and time limit.
      """
      executor = experiment_resources
      executor.update({"time_budget_s": time_limit_s})
      if time_limit_s is not None:
          executor.update({SCHEDULER: {"max_t": time_limit_s}})
  
      return {
          HYPEROPT: {
              SEARCH_ALG: {"random_state_seed": random_seed},
              EXECUTOR: executor,
          },
      }
  
imports: import logging
  import os
  from dataclasses import dataclass
  from typing import Any, Dict, List, Set, Union
  import dask.dataframe
  import numpy
  import pandas
  import yaml
  from dataclasses_json import dataclass_json, LetterCase
  from tqdm import tqdm
  from ludwig.api_annotations import DeveloperAPI
  from ludwig.backend import Backend
  from ludwig.constants import COLUMN, COMBINER, ENCODER, EXECUTOR, HYPEROPT, INPUT_FEATURES, PREPROCESSING, SCHEDULER, SEARCH_ALG, SPLIT, TEXT, TYPE
  from ludwig.types import ModelConfigDict
  from ludwig.utils.automl.data_source import DataSource, wrap_data_source
  from ludwig.utils.automl.field_info import FieldConfig, FieldInfo, FieldMetadata
  from ludwig.utils.automl.type_inference import infer_type, should_exclude
  from ludwig.utils.data_utils import load_yaml
  from ludwig.utils.misc_utils import merge_dict
  from ludwig.utils.system_utils import Resources
label_desc: Use image node_id 2 for calling a global function with example usage: get_resource_aware_hyperopt_config(experiment_resources, time_limit_s, random_seed) and returns: dict