<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def until(self, func, message='', *args, **kwargs):
 """ Continues to execute the function until successful or time runs out. :param func: function to execute :param message: message to print if time ran out :param args: arguments :param kwargs: key word arguments :return: result of function or None """

        value = None
        end_time = time.time() + self._timeout
        while True:
            value = func(*args, **kwargs)
            if self._debug:
                print("Value from func within ActionWait: {}".format(value))
            if value:
                break

            time.sleep(self._poll)
            self._poll *= 1.25
            if time.time() > end_time:
                raise RuntimeError(message)
        return value