code: def __call__(self, parser, namespace, values, option_string=None):
      # convert values into dict
      override_dict = {}
      for val in values:
          if val.find("=") < 0:
              logger.error(
                  "For override arguments, a key-value pair of the form key=value is expected. Got: {}".format(
                      val
                  )
              )
          val_list = val.split("=")
          if len(val_list) != 2:
              logger.error(
                  "For override arguments, a key-value pair of the form key=value is expected with only one value per key. Got: {}".format(
                      val
                  )
              )
          override_dict[val_list[0]] = val_list[1]
  
      # determine the type of each value from parser actions and set accordingly
      options = parser._actions
      for option in options:
          option_dest = option.dest
          if option_dest in override_dict:
              val = override_dict[option_dest]
              if type(option.default) == bool and option.nargs == 0:
                  # Boolean argument
                  # value could be false, False, true, True
                  override_dict[option_dest] = (
                      True if val.lower().find("true") > -1 else False
                  )
              elif option.nargs is None:
                  # when nargs is not defined, it is usually a string, int, and float.
                  override_dict[option_dest] = option.type(val)
              elif option.nargs in ["+", "*"]:
                  # for list, we expect value to be comma separated
                  val_list = val.split(",")
                  override_dict[option_dest] = [
                      option.type(v) for v in val_list
                  ]
              else:
                  logger.error(
                      "Following option is not yet supported for overriding. Please specify in config file. Got: {}".format(
                          option
                      )
                  )
      setattr(namespace, "override_args", override_dict)
  
imports: import argparse
  from typing import List, Optional
  from common import SUPPORTED_MODALITIES
  from cvnets import modeling_arguments
  from data.collate_fns import arguments_collate_fn
  from data.datasets import arguments_dataset
  from data.sampler import add_sampler_arguments
  from data.text_tokenizer import arguments_tokenizer
  from data.transforms import arguments_augmentation
  from data.video_reader import arguments_video_reader
  from loss_fn import add_loss_fn_arguments
  from metrics import METRICS_REGISTRY, arguments_stats
  from optim import arguments_optimizer
  from optim.scheduler import arguments_scheduler
  from options.utils import load_config_file
  from utils import logger
label_desc: Use image node_id 1 for calling the ParseKwargs obj's underlying member method code with example usage: obj.__call__(parser, namespace, values, option_string) without return types