code: def annotate(dest, source):
      try:
          dest.__annotations__ = source.__annotations__
      except AttributeError:
          pass
      if isinstance(dest, type):
          for name in dest.__dict__.keys():
              if hasattr(source, name):
                  obj = getattr(dest, name)
                  annotate(obj, getattr(source, name))
      if isinstance(dest, type(sys)):
          for name in dir(dest):
              if hasattr(source, name):
                  obj = getattr(dest, name)
                  mod = getattr(obj, "__module__", None)
                  if dest.__name__ == mod:
                      annotate(obj, getattr(source, name))
          for name in dir(source):
              if not hasattr(dest, name):
                  setattr(dest, name, getattr(source, name))
  
imports: import os
  import sys
  import inspect
  import textwrap
label_desc: Use image node_id 24 for calling a global function with example usage: annotate(dest, source) without return types