class_docstr: QuestionAnsweringPipeline requires the user to provide multiple arguments (i.e. question & context) to be mapped to
  internal [`SquadExample`].
  
  QuestionAnsweringArgumentHandler manages all the possible to create a [`SquadExample`] from the command-line
  supplied arguments.
class_docstr_tok: ["QuestionAnsweringPipeline","requires","the","user","to","provide","multiple","arguments","(","i.e",".","question","&","context",")","to","be","mapped","to","internal","[","`","SquadExample","`","]",".","QuestionAnsweringArgumentHandler","manages","all","the","possible","to","create","a","[","`","SquadExample","`","]","from","the","command-line","supplied","arguments","."]
code: def __call__(self, *args, **kwargs):
      # Detect where the actual inputs are
      if args is not None and len(args) > 0:
          if len(args) == 1:
              inputs = args[0]
          elif len(args) == 2 and {type(el) for el in args} == {str}:
              inputs = [{"question": args[0], "context": args[1]}]
          else:
              inputs = list(args)
      # Generic compatibility with sklearn and Keras
      # Batched data
      elif "X" in kwargs:
          inputs = kwargs["X"]
      elif "data" in kwargs:
          inputs = kwargs["data"]
      elif "question" in kwargs and "context" in kwargs:
          if isinstance(kwargs["question"], list) and isinstance(
              kwargs["context"], str
          ):
              inputs = [
                  {"question": Q, "context": kwargs["context"]}
                  for Q in kwargs["question"]
              ]
          elif isinstance(kwargs["question"], list) and isinstance(
              kwargs["context"], list
          ):
              if len(kwargs["question"]) != len(kwargs["context"]):
                  raise ValueError(
                      "Questions and contexts don't have the same lengths"
                  )
  
              inputs = [
                  {"question": Q, "context": C}
                  for Q, C in zip(kwargs["question"], kwargs["context"])
              ]
          elif isinstance(kwargs["question"], str) and isinstance(
              kwargs["context"], str
          ):
              inputs = [
                  {
                      "question": kwargs["question"],
                      "context": kwargs["context"],
                  }
              ]
          else:
              raise ValueError("Arguments can't be understood")
      else:
          raise ValueError(f"Unknown arguments {kwargs}")
  
      # When user is sending a generator we need to trust it's a valid example
      generator_types = (
          (types.GeneratorType, Dataset)
          if Dataset is not None
          else (types.GeneratorType,)
      )
      if isinstance(inputs, generator_types):
          return inputs
  
      # Normalize inputs
      if isinstance(inputs, dict):
          inputs = [inputs]
      elif isinstance(inputs, Iterable):
          # Copy to avoid overriding arguments
          inputs = [i for i in inputs]
      else:
          raise ValueError(f"Invalid arguments {kwargs}")
  
      for i, item in enumerate(inputs):
          inputs[i] = self.normalize(item)
  
      return inputs
  
imports: import types
  import warnings
  from collections.abc import Iterable
  from typing import TYPE_CHECKING, Dict, List, Optional, Tuple, Union
  import numpy
  from ..data import SquadExample, SquadFeatures, squad_convert_examples_to_features
  from ..modelcard import ModelCard
  from ..tokenization_utils import PreTrainedTokenizer
  from ..utils import PaddingStrategy, add_end_docstrings, is_tf_available, is_tokenizers_available, is_torch_available, logging
  from .base import PIPELINE_INIT_ARGS, ArgumentHandler, ChunkPipeline
label_desc: Use image node_id 2 for calling the QuestionAnsweringArgumentHandler obj's underlying member method code with example usage: obj.__call__() and returns: inputs, inputs