code: def __init__(self, f):
      self._check_type(f)
      self.code = f.__code__
      if f.__defaults__:
          self.defaults = [can(fd) for fd in f.__defaults__]
      else:
          self.defaults = None
  
      if f.__kwdefaults__:
          self.kwdefaults = can_dict(f.__kwdefaults__)
      else:
          self.kwdefaults = None
  
      if f.__annotations__:
          self.annotations = can_dict(f.__annotations__)
      else:
          self.annotations = None
  
      closure = f.__closure__
      if closure:
          self.closure = tuple(can(cell) for cell in closure)
      else:
          self.closure = None
  
      self.module = f.__module__ or "__main__"
      self.__name__ = f.__name__
      self.buffers = []
  
imports: import copy
  import functools
  import sys
  from types import FunctionType
  from traitlets import import_item
  from traitlets.log import get_logger
  from .None import codeutil
label_desc: Use image node_id 1 to create a new CannedFunction object from inherited base classes: CannedObject with example: obj = CannedFunction(f)