code: def get_argspec(f):
      sig = inspect.signature(f)
      args = [
          n for n, p in sig.parameters.items() if p.kind in ARG_TYPES
      ]
      pos_args = [
          n
          for n, p in sig.parameters.items()
          if p.kind in POSARG_TYPES and p.default == inspect._empty
      ]
      varargs = [
          n
          for n, p in sig.parameters.items()
          if p.kind == Parameter.VAR_POSITIONAL
      ]
      # only use first vararg  (how on earth would you have more anyways?)
      vararg_name = varargs[0] if varargs else None
  
      varkws = [
          n
          for n, p in sig.parameters.items()
          if p.kind == Parameter.VAR_KEYWORD
      ]
      # only use first varkw  (how on earth would you have more anyways?)
      kw_wildcard_name = varkws[0] if varkws else None
      kwargs = OrderedDict(
          [
              (n, p.default)
              for n, p in sig.parameters.items()
              if p.default != inspect._empty
          ]
      )
  
      return args, vararg_name, kw_wildcard_name, pos_args, kwargs
  
file_path: sacred/sacred/config/signature.py
imports: import inspect
  from inspect import Parameter
  from collections import OrderedDict
  from sacred.utils import MissingConfigError, SignatureError
label_desc: Use image node_id 1 for calling a global function with example usage: get_argspec(f) and returns: args,  vararg_name,  kw_wildcard_name,  pos_args,  kwargs