code: def init_config(
      dataset: str,
      target: Union[str, List[str]],
      time_limit_s: Union[int, float],
      tune_for_memory: bool = False,
      suggested: bool = False,
      hyperopt: bool = False,
      output: str = None,
      random_seed: int = default_random_seed,
      use_reference_config: bool = False,
      **kwargs,
  ):
      config = create_auto_config(
          dataset=dataset,
          target=target,
          time_limit_s=time_limit_s,
          random_seed=random_seed,
          use_reference_config=use_reference_config,
          tune_for_memory=tune_for_memory,
      )
  
      if HYPEROPT in config and not hyperopt:
          del config[HYPEROPT]
  
      if not suggested:
          # Only use inputs and outputs
          minimal_config = {
              INPUT_FEATURES: [
                  {"name": f[NAME], "type": f[TYPE]}
                  for f in config[INPUT_FEATURES]
              ],
              OUTPUT_FEATURES: [
                  {"name": f[NAME], "type": f[TYPE]}
                  for f in config[OUTPUT_FEATURES]
              ],
          }
          if hyperopt:
              minimal_config[HYPEROPT] = config[HYPEROPT]
          config = minimal_config
  
      if output is None:
          print(yaml.safe_dump(config, None, sort_keys=False))
      else:
          with open_file(output, "w") as f:
              yaml.safe_dump(config, f, sort_keys=False)
  
imports: import argparse
  import copy
  import logging
  import os
  import warnings
  from typing import Any, Dict, List, Optional, Union
  import numpy
  import pandas
  import yaml
  from ludwig.api import LudwigModel
  from ludwig.api_annotations import PublicAPI
  from ludwig.automl.base_config import create_default_config, DatasetInfo, get_dataset_info, get_features_config, get_reference_configs
  from ludwig.backend import Backend, initialize_backend
  from ludwig.constants import AUTO, AUTOML_DEFAULT_IMAGE_ENCODER, AUTOML_DEFAULT_TABULAR_MODEL, AUTOML_DEFAULT_TEXT_ENCODER, BINARY, CATEGORY, ENCODER, HYPEROPT, IMAGE, INPUT_FEATURES, NAME, NUMBER, OUTPUT_FEATURES, TABULAR, TEXT, TRAINER, TYPE
  from ludwig.contrib import add_contrib_callback_args
  from ludwig.data.cache.types import CacheableDataset
  from ludwig.datasets import load_dataset_uris
  from ludwig.globals import LUDWIG_VERSION
  from ludwig.hyperopt.run import hyperopt
  from ludwig.schema.model_config import ModelConfig
  from ludwig.types import ModelConfigDict
  from ludwig.utils.automl.ray_utils import _ray_init
  from ludwig.utils.automl.utils import _add_transfer_config, get_model_type, set_output_feature_metric
  from ludwig.utils.data_utils import load_dataset, use_credentials
  from ludwig.utils.defaults import default_random_seed
  from ludwig.utils.fs_utils import open_file
  from ludwig.utils.heuristics import get_auto_learning_rate
  from ludwig.utils.misc_utils import merge_dict
  from ludwig.utils.print_utils import print_ludwig
label_desc: Use image node_id 8 for calling a global function with example usage: init_config(dataset, target, time_limit_s, tune_for_memory, suggested, hyperopt, output, random_seed, use_reference_config) without return types