def reset(self, secondsFromNow):
if self.cancelled:<EOL><INDENT>raise error.AlreadyCancelled<EOL><DEDENT>elif self.called:<EOL><INDENT>raise error.AlreadyCalled<EOL><DEDENT>else:<EOL><INDENT>if self.seconds is None:<EOL><INDENT>new_time = base.seconds() + secondsFromNow<EOL><DEDENT>else:<EOL><INDENT>new_time = self.seconds() + secondsFromNow<EOL><DEDENT>if new_time < self.time:<EOL><INDENT>self.delayed_time = <NUM_LIT:0><EOL>self.time = new_time<EOL>self.resetter(self)<EOL><DEDENT>else:<EOL><INDENT>self.delayed_time = new_time - self.time<EOL><DEDENT><DEDENT>
Reschedule this call for a different time

        @type secondsFromNow: C{float}
        @param secondsFromNow: The number of seconds from the time of the
        C{reset} call at which this call will be scheduled.

        @raise AlreadyCancelled: Raised if this call has been cancelled.
        @raise AlreadyCalled: Raised if this call has already been made.