def METHOD_NAME(name, can_raise=False):
    """Pre/pos emiting signal"""
    def deco(func):
        @functools.wraps(func)
        def newFunction(self, *args, **kw):
            self._publish(f"will_{name}", *args, can_raise=can_raise, **kw)
            result = func(self, *args, **kw)
            self._publish(f"did_{name}", result, can_raise=can_raise)
            return result
        return newFunction
    return deco