def SlotSentinel(*args):
    """Provides exception handling for all slots"""

    # (NOTE) davidlatwe
    # Thanks to this answer
    # https://stackoverflow.com/questions/18740884

    if len(args) == 0 or isinstance(args[0], types.FunctionType):
        args = []

    @QtCore.pyqtSlot(*args)
    def slotdecorator(func):
        @wraps(func)
        def wrapper(*args, **kwargs):
            try:
                func(*args)
            except Exception:
                traceback.print_exc()
        return wrapper

    return slotdecorator
Provides exception handling for all slots