code: def is_incomplete_argument(current_params, cmd_param):
      
      if not isinstance(cmd_param, Argument):
          return False
      current_param_values = current_params[cmd_param.name]
      if current_param_values is None:
          return True
      if cmd_param.nargs == -1:
          return True
      if isinstance(current_param_values, abc.Iterable) \
              and cmd_param.nargs > 1 and len(current_param_values) < cmd_param.nargs:
          return True
      return False
docs: :param current_params: the current params and values for this argument as already entered
      :param cmd_param: the current command parameter
      :return: whether or not the last argument is incomplete and corresponds to this cmd_param. In
      other words whether or not the this cmd_param argument can still accept values