code: def _get_defaults_from_argparse(
      self, parser, args=None, namespace=None, parsed_args=None
  ):
      task_defaults = {}
      task_defaults_descriptions = {}
      task_defaults_types = {}
      self._add_to_defaults(
          parser,
          task_defaults,
          task_defaults_descriptions,
          task_defaults_types,
          args,
          namespace,
          parsed_args,
      )
  
      # Make sure we didn't miss anything
      if parsed_args:
          for k, v in parsed_args.__dict__.items():
              if k not in task_defaults:
                  # do not change this comparison because isinstance(type(v), type(None)) === False
                  if v is None:
                      task_defaults[k] = ""
                  elif type(v) in (str, int, float, bool, list):
                      task_defaults[k] = v
  
      # Verify arguments
      for k, v in task_defaults.items():
          # noinspection PyBroadException
          try:
              if type(v) is list:
                  task_defaults[k] = str(v)
              elif type(v) not in (str, int, float, bool):
                  task_defaults[k] = str(v)
          except Exception:
              del task_defaults[k]
  
      # Skip excluded arguments, Add prefix.
      if Session.check_min_api_version("2.9"):
          include_all = self._exclude_parser_args.get("*", True)
          task_defaults = dict(
              [
                  (self._prefix_args + k, v)
                  for k, v in task_defaults.items()
                  if self._exclude_parser_args.get(k, include_all)
              ]
          )
          task_defaults_descriptions = dict(
              [
                  (self._prefix_args + k, v)
                  for k, v in task_defaults_descriptions.items()
                  if self._exclude_parser_args.get(k, include_all)
              ]
          )
          task_defaults_types = dict(
              [
                  (self._prefix_args + k, v)
                  for k, v in task_defaults_types.items()
                  if self._exclude_parser_args.get(k, include_all)
              ]
          )
      else:
          task_defaults = dict(
              [
                  (k, v)
                  for k, v in task_defaults.items()
                  if self._exclude_parser_args.get(k, True)
              ]
          )
  
      return (
          task_defaults,
          task_defaults_descriptions,
          task_defaults_types,
      )
  
imports: import yaml
  from enum import Enum
  from inspect import isfunction
  from six import PY2
  from argparse import _StoreAction, ArgumentError, _StoreConstAction, _SubParsersAction, _AppendAction, SUPPRESS
  from copy import copy
  from typing import Tuple, Type, Union
  from ...backend_api import Session
  from ...binding.args import call_original_argparser
  from ...utilities.proxy_object import get_type_from_basic_type_str
label_desc: Use image node_id 8 for calling the _Arguments obj's underlying member method code with example usage: obj._get_defaults_from_argparse(parser, args, namespace, parsed_args) and returns: task_defaults,  task_defaults_descriptions,  task_defaults_types