code: def build_call(func, *args, **kwargs):
      
  
      func = get_wrapped_func(func)
      named, vargs, _, defs, kwonly, kwonlydefs, _ = getfullargspec(func)
  
      nonce = object()
      actual = dict((name, nonce) for name in named)
  
      defs = defs or ()
      kwonlydefs = kwonlydefs or {}
  
      actual.update(kwonlydefs)
      actual.update(dict(zip(reversed(named), reversed(defs))))
      actual.update(dict(zip(named, args)))
  
      if vargs:
          actual[vargs] = tuple(args[len(named):])
  
      actual.update(kwargs)
  
      for name, value in actual.items():
          if value is nonce:
              raise TypeError("%s missing required positional argument: '%s'" % (func.__name__, name))
  
      return tuple_of_dict(actual)
docs: Build an argument dictionary suitable for passing via `**` expansion given
      function `f`, positional arguments `args`, and keyword arguments `kwargs`.