code: def _log_task_info(task_config: dict):
      R.log_params(**flatten_dict(task_config))
      R.save_objects(
          **{"task": task_config}
      )  # keep the original format and datatype
      R.set_tags(**{"hostname": socket.gethostname()})
  
imports: import socket
  from typing import Callable, List, Optional
  from tqdm.auto import tqdm
  from qlib.config import C
  from qlib.data.dataset import Dataset
  from qlib.data.dataset.weight import Reweighter
  from qlib.log import get_module_logger
  from qlib.model.base import Model
  from qlib.utils import auto_filter_kwargs, fill_placeholder, flatten_dict, init_instance_by_config
  from qlib.utils.paral import call_in_subproc
  from qlib.workflow import R
  from qlib.workflow.recorder import Recorder
  from qlib.workflow.task.manage import TaskManager, run_task
label_desc: Use image node_id 1 for calling a global function with example usage: _log_task_info(task_config) without return types