code: def visit_FuncDefNode(self, node):
      if not node.doc or (
          isinstance(node, DefNode) and node.fused_py_func
      ):
          return node
      if not self.cdef_docstrings:
          if isinstance(node, CFuncDefNode) and not node.py_func:
              return node
      if not self.all_docstrings and ">>>" not in node.doc:
          return node
  
      pos = self.testspos
      if self.scope_type == "module":
          path = node.entry.name
      elif self.scope_type in ("pyclass", "cclass"):
          if isinstance(node, CFuncDefNode):
              if node.py_func is not None:
                  name = node.py_func.name
              else:
                  name = node.entry.name
          else:
              name = node.name
          if self.scope_type == "cclass" and name in self.blacklist:
              return node
          if self.scope_type == "pyclass":
              class_name = self.scope_node.name
          else:
              class_name = self.scope_node.class_name
          if isinstance(node.entry.scope, Symtab.PropertyScope):
              property_method_name = node.entry.scope.name
              path = "%s.%s.%s" % (
                  class_name,
                  node.entry.scope.name,
                  node.entry.name,
              )
          else:
              path = "%s.%s" % (class_name, node.entry.name)
      else:
          assert False
      self.add_test(node.pos, path, node.doc)
      return node
  
file_path: catboost/contrib/tools/cython/Cython/Compiler/AnalysedTreeTransforms.py
imports: from __future__ import absolute_import
  from .Visitor import ScopeTrackingTransform
  from .Nodes import StatListNode, SingleAssignmentNode, CFuncDefNode, DefNode
  from .ExprNodes import DictNode, DictItemNode, NameNode, UnicodeNode
  from .PyrexTypes import py_object_type
  from .StringEncoding import EncodedString
  from .None import Symtab
label_desc: Use image node_id 4 for calling the AutoTestDictTransform obj's underlying member method code with example usage: obj.visit_FuncDefNode(node) and returns: node, node, node, node, node