Try guess the message by the args passed

        args: a set of args passed on the wrapper __call__ in
              the definition above.

        if the object already have some message (defined in __init__),
        we don't change that. If the first arg is a function, so is decorated
        without argument, use the func name as the message.

        If not self.message anyway, use the default_message global,
        another else  use the default self.message already

def auto_message(self, args):
        """Try guess the message by the args passed

        args: a set of args passed on the wrapper __call__ in
              the definition above.

        if the object already have some message (defined in __init__),
        we don't change that. If the first arg is a function, so is decorated
        without argument, use the func name as the message.

        If not self.message anyway, use the default_message global,
        another else  use the default self.message already

        """
        if any(args) and callable(args[0]) and not self.message:
            return args[0].__name__
        elif not self.message:
            return self.default_message
        else:
            return self.message