code: def install(*exc_classes_or_instances):
      copyreg.pickle(TracebackType, pickle_traceback)
  
      if sys.version_info.major < 3:
          # Dummy decorator?
          if len(exc_classes_or_instances) == 1:
              exc = exc_classes_or_instances[0]
              if isinstance(exc, type) and issubclass(
                  exc, BaseException
              ):
                  return exc
          return
  
      if not exc_classes_or_instances:
          for exception_cls in _get_subclasses(BaseException):
              copyreg.pickle(exception_cls, pickle_exception)
          return
  
      for exc in exc_classes_or_instances:
          if isinstance(exc, BaseException):
              while exc is not None:
                  copyreg.pickle(type(exc), pickle_exception)
                  exc = exc.__cause__
          elif isinstance(exc, type) and issubclass(exc, BaseException):
              copyreg.pickle(exc, pickle_exception)
              # Allow using @install as a decorator for Exception classes
              if len(exc_classes_or_instances) == 1:
                  return exc
          else:
              raise TypeError(
                  "Expected subclasses or instances of BaseException, got %s"
                  % (type(exc))
              )
  
file_path: mars/mars/lib/tblib/pickling_support.py
imports: import sys
  from types import TracebackType
  from .None import Frame
  from .None import Traceback
label_desc: Use image node_id 6 for calling a global function with example usage: install() and returns: exc, exc