code: def _get_default_arg(args, defaults, arg_index):
      
      if not defaults:
          return DefaultArgSpec(False, None)
  
      args_with_no_defaults = len(args) - len(defaults)
  
      if arg_index < args_with_no_defaults:
          return DefaultArgSpec(False, None)
      else:
          value = defaults[arg_index - args_with_no_defaults]
          if (type(value) is str):
              value = '"%s"' % value
          return DefaultArgSpec(True, value)
docs: Method that determines if an argument has default value or not,
      and if yes what is the default value for the argument
  
      :param args: array of arguments, eg: ['first_arg', 'second_arg', 'third_arg']
      :param defaults: array of default values, eg: (42, 'something')
      :param arg_index: index of the argument in the argument array for which,
      this function checks if a default value exists or not. And if default value
      exists it would return the default value. Example argument: 1
      :return: Tuple of whether there is a default or not, and if yes the default
      value, eg: for index 2 i.e. for "second_arg" this function returns (True, 42)