class_docstr: Copy only ast nodes and lists
code: def visitDefault(self, node):
      Node = type(node)
      new_node = Node()
  
      for _field in Node._fields:
          if hasattr(node, _field):
              field = getattr(node, _field)
              if isinstance(field, (list, tuple)):
                  new_list = []
                  for item in field:
                      if isinstance(item, ast.AST):
                          new_item = self.visit(item)
                      else:
                          new_item = item
                      new_list.append(new_item)
  
                  setattr(new_node, _field, new_list)
              elif isinstance(field, ast.AST):
                  setattr(new_node, _field, self.visit(field))
              else:
                  setattr(new_node, _field, field)
  
      for _attr in node._attributes:
          if hasattr(node, _attr):
              setattr(new_node, _attr, getattr(node, _attr))
  
      return new_node
  
file_path: turicreate/src/python/turicreate/meta/asttools/visitors/copy_tree.py
imports: from __future__ import print_function
  from __future__ import division
  from __future__ import absolute_import
  from ..asttools import Visitor
  import ast
label_desc: Use image node_id 1 for calling the CopyVisitor obj's underlying member method code with example usage: obj.visitDefault(node) and returns: new_node