code: def required_args(target, args=(), kwargs=()):
      """Return a set of names of required args to target that were not supplied
      in args or kwargs.
  
      This is used in builds() to determine which arguments to attempt to
      fill from type hints.  target may be any callable (including classes
      and bound methods).  args and kwargs should be as they are passed to
      builds() - that is, a tuple of values and a dict of names: values.
      """
      # We start with a workaround for NamedTuples, which don't have nice inits
      if inspect.isclass(target) and is_typed_named_tuple(target):
          provided = set(kwargs) | set(target._fields[: len(args)])
          return set(target._fields) - provided
      # Then we try to do the right thing with getfullargspec
      try:
          spec = getfullargspec(
              getattr(target, "__init__", target)
              if inspect.isclass(target)
              else target
          )
      except TypeError:  # pragma: no cover
          return None
      # self appears in the argspec of __init__ and bound methods, but it's an
      # error to explicitly supply it - so we might skip the first argument.
      skip_self = int(
          inspect.isclass(target) or inspect.ismethod(target)
      )
      # Start with the args that were not supplied and all kwonly arguments,
      # then remove all positional arguments with default values, and finally
      # remove kwonly defaults and any supplied keyword arguments
      return (
          set(spec.args[skip_self + len(args) :] + spec.kwonlyargs)
          - set(spec.args[len(spec.args) - len(spec.defaults or ()) :])
          - set(spec.kwonlydefaults or ())
          - set(kwargs)
      )
  
imports: from __future__ import absolute_import, division, print_function
  import ast
  import hashlib
  import inspect
  import re
  import types
  from functools import wraps
  from types import ModuleType
  from hypothesis.internal.compat import ARG_NAME_ATTRIBUTE, PY2, getfullargspec, hrange, isidentifier, qualname, str_to_bytes, to_str, to_unicode, update_code_location
  from hypothesis.vendor.pretty import pretty
label_desc: Use image node_id 5 for calling a global function with example usage: required_args(target, args, kwargs) and returns: unknown, unknown, None