def __global_logging_exception_handler(exc_type, exc_value, exc_traceback):
    if exc_type.__name__ == "KeyboardInterrupt":
        # Do not log the exception or display the traceback on Keyboard Interrupt
        # Stop the logging queue listener thread
        if is_mp_logging_listener_configured():
            shutdown_multiprocessing_logging_listener()
    else:
        # Log the exception
        logging.getLogger(__name__).error(
            'An un-handled exception was caught by salt\'s global exception '
            'handler:\n{0}: {1}\n{2}'.format(
                exc_type.__name__,
                exc_value,
                ''.join(traceback.format_exception(
                    exc_type, exc_value, exc_traceback
                )).strip()
            )
        )
        # Call the original sys.excepthook
        sys.__excepthook__(exc_type, exc_value, exc_traceback)


# Set our own exception handler as the one to use
Return matplotlib.colors.Colormap object with N levels.
dataset/ETHPy150Open saltstack/salt/salt/log/setup.py/__global_logging_exception_handler--crossover with--dataset/ETHPy150Open yhat/ggplot/ggplot/utils/color.py/Color.Colormap