def unblockable(function):
    """Decorate a function to exempt it from the ignore/blocks system.

    For example, this can be used to ensure that important events such as
    ``JOIN`` are always recorded::

        from sopel import module

        @module.event('JOIN')
        @module.unblockable
        def on_join_callable(bot, trigger):
            # do something when a user JOIN a channel
            # a blocked nickname or hostname *will* trigger this
            pass

    .. seealso::

        Sopel's :meth:`~sopel.bot.Sopel.dispatch` and
        :meth:`~sopel.bot.Sopel.get_triggered_callables` methods.

    """
    function.unblockable = True
    return function
