code: def prepare_task_metadata(config: PyTextConfig) -> CommonMetadata:
      """
      Loading the whole dataset into cpu memory on every single processes could
      cause OOMs for data parallel distributed training.
      To avoid such practice, we move the operations that required loading the
      whole dataset out of spawn, and pass the context to every single process.
      """
      return (
          create_task(config.task).data_handler.metadata
          if hasattr(config.task, "data_handler")
          else {}
      )
  
imports: import gzip
  import json
  import os
  import sys
  import traceback
  from typing import Any, Dict, get_type_hints, IO, Iterator, List, Optional, Tuple, Union
  import torch
  from pytext.common.constants import Stage
  from pytext.config import ExportConfig, PyTextConfig, TestConfig
  from pytext.config.component import ComponentType, create_component, create_exporter
  from pytext.data.data import Batcher
  from pytext.data.data_handler import CommonMetadata
  from pytext.metric_reporters.channel import Channel
  from pytext.task import create_task, get_latest_checkpoint_path, load, NewTask, save, Task_Deprecated
  from pytext.task.disjoint_multitask import NewDisjointMultitask
  from pytext.trainers import TrainingState
  from pytext.utils import cuda, distributed, precision, round_seq, set_random_seeds, timing
  from pytext.utils.file_io import PathManager
label_desc: Use image node_id 4 for calling a global function with example usage: prepare_task_metadata(config) and returns: unknown