code: def build_iteration_strategy(
      config: DictConfig,
      dataloaders: Dict[str, torch.utils.data.DataLoader],
      *args,
      **kwargs,
  ) -> IterationStrategy:
      if not config.get("enabled", True):
          return ConstantIterationStrategy.from_params(
              dataloaders, *args, **kwargs
          )
      else:
          assert (
              "type" in config
          ), "multitasking config must define 'type' attribute if enabled"
          # This assumes all dataloaders will have same dataset type
          iteration_strategy_class = (
              registry.get_iteration_strategy_class(config.type)
          )
          config = config.get("params", {})
          # val and test splits won't be affected as test reporter iterates
          # over the datasets one by one without using any iteration strategy
          return iteration_strategy_class(
              config, dataloaders, *args, **kwargs
          )
  
imports: import logging
  import os
  import warnings
  from enum import Enum
  from typing import Any, Dict, List, Optional, Tuple, Union
  import mmf
  import pytorch_lightning
  import torch
  from mmf.common.meter import Meter
  from mmf.common.registry import registry
  from mmf.datasets.iteration_strategies import ConstantIterationStrategy, IterationStrategy, SizeProportionalIterationStrategy
  from mmf.datasets.processors.processors import Processor
  from mmf.utils.configuration import Configuration, get_global_config
  from mmf.utils.distributed import is_dist_initialized, is_main, is_xla, synchronize
  from mmf.utils.general import get_optimizer_parameters
  from omegaconf import DictConfig, OmegaConf
  from packaging import version
label_desc: Use image node_id 20 for calling a global function with example usage: build_iteration_strategy(config, dataloaders) and returns: ConstantIterationStrategy, iteration_strategy_class