class_docstr: Transforms the call tree by renaming transformed symbols.
class_docstr_tok: ["Transforms","the","call","tree","by","renaming","transformed","symbols","."]
code: def visit_FunctionDef(self, node):
      # Decorators and arg defaults are part of the outer scope.
      node.decorator_list = self.visit_block(node.decorator_list)
      node.args.defaults = self.visit_block(node.args.defaults)
      for i, d in enumerate(node.args.kw_defaults):
          if d is not None:
              node.args.kw_defaults[i] = self.visit(d)
      with self.state[_Function] as fn_scope:
          # Note: if the conversion process ever creates helper functions, this
          # assumption will no longer hold.
          assert anno.hasanno(
              node, "function_context_name"
          ), "The function_scopes converter always creates a scope for functions."
          fn_scope.context_name = anno.getanno(
              node, "function_context_name"
          )
          node.body = self.visit_block(node.body)
          if node.returns:
              node.returns = self.visit(node.returns)
          return node
  
imports: import gast
  from nvidia.dali._autograph.core import converter
  from nvidia.dali._autograph.pyct import anno
  from nvidia.dali._autograph.pyct import parser
  from nvidia.dali._autograph.pyct import qual_names
  from nvidia.dali._autograph.pyct import templates
  from nvidia.dali._autograph.utils import ag_logging
label_desc: Use image node_id 2 for calling the CallTreeTransformer obj's underlying member method code with example usage: obj.visit_FunctionDef(node) and returns: node