code: def formatargvalues(
      args,
      varargs,
      varkw,
      locals,
      formatarg=str,
      formatvarargs=lambda name: "*" + name,
      formatvarkw=lambda name: "**" + name,
      formatvalue=lambda value: "=" + repr(value),
      join=joinseq,
  ):
      """Format an argument spec from the 4 values returned by getargvalues.
  
      The first four arguments are (args, varargs, varkw, locals).  The
      next four arguments are the corresponding optional formatting functions
      that are called to turn names and values into strings.  The ninth
      argument is an optional function to format the sequence of arguments.
  
      """
  
      def convert(
          name,
          locals=locals,
          formatarg=formatarg,
          formatvalue=formatvalue,
      ):
          return formatarg(name) + formatvalue(locals[name])
  
      specs = [strseq(arg, convert, join) for arg in args]
  
      if varargs:
          specs.append(
              formatvarargs(varargs) + formatvalue(locals[varargs])
          )
      if varkw:
          specs.append(formatvarkw(varkw) + formatvalue(locals[varkw]))
      return "(" + ", ".join(specs) + ")"
  
file_path: catboost/contrib/python/numpy/py2/numpy/compat/_inspect.py
imports: from __future__ import division, absolute_import, print_function
  import types
label_desc: Use image node_id 10 for calling a global function with example usage: formatargvalues(args, varargs, varkw, locals, formatarg, formatvarargs, formatvarkw, formatvalue, join) and returns: unknown, unknown