code: def find_funcs_called_with_kwargs(sourcecode, target_kwargs_name='kwargs'):
      r
      import ast
      sourcecode = 'from __future__ import print_function\n' + sourcecode
      pt = ast.parse(sourcecode)
      child_funcnamess = []
      debug = False or VERYVERB_INSPECT
      if debug:
          print('\nInput:')
          print('target_kwargs_name = %r' % (target_kwargs_name,))
          print('\nSource:')
          print(sourcecode)
          import astor
          print('\nParse:')
          print(astor.dump(pt))
      class KwargParseVisitor(ast.NodeVisitor):
          def visit_FunctionDef(self, node):
              if debug:
                  print('\nVISIT FunctionDef node = %r' % (node,))
                  print('node.args.kwarg = %r' % (node.args.kwarg,))
              if six.PY2:
                  kwarg_name = node.args.kwarg
              else:
                  if node.args.kwarg is None:
                      kwarg_name = None
                  else:
                      kwarg_name = node.args.kwarg.arg
              if kwarg_name != target_kwargs_name:
                  ast.NodeVisitor.generic_visit(self, node)
          def visit_Call(self, node):
              if debug:
                  print('\nVISIT Call node = %r' % (node,))
              if isinstance(node.func, ast.Attribute):
                  try:
                      funcname = node.func.value.id + '.' + node.func.attr
                  except AttributeError:
                      funcname = None
              elif isinstance(node.func, ast.Name):
                  funcname = node.func.id
              else:
                  raise NotImplementedError(
                      'do not know how to parse: node.func = %r' % (node.func,))
              if six.PY2:
                  kwargs = node.kwargs
                  kwargs_name = None if kwargs is None else kwargs.id
                  if funcname is not None and kwargs_name == target_kwargs_name:
                      child_funcnamess.append(funcname)
                  if debug:
                      print('funcname = %r' % (funcname,))
                      print('kwargs_name = %r' % (kwargs_name,))
              else:
                  if node.keywords:
                      for kwargs in node.keywords:
                          if kwargs.arg is None:
                              if hasattr(kwargs.value, 'id'):
                                  kwargs_name = kwargs.value.id
                                  if funcname is not None and kwargs_name == target_kwargs_name:
                                      child_funcnamess.append(funcname)
                                  if debug:
                                      print('funcname = %r' % (funcname,))
                                      print('kwargs_name = %r' % (kwargs_name,))
              ast.NodeVisitor.generic_visit(self, node)
      try:
          KwargParseVisitor().visit(pt)
      except Exception:
          raise
          pass
      return child_funcnamess