[Twisted-Python] twisted.internet.interfaces.IReactorTime.callAt

I think it's useful to have a callAt function in the reactor. Itamar mentioned that one of the design goals of the reactor is to have a minimal interface. However, IMHO it should be added to IReactor due to the utility (log rotation, scheduled events, etc.) of such a convenience function and the fact it takes a newbie a lot longer to find something hidden away in a utils package (for example, today, neither Itamar nor I knew that there was a function in t.i.utils to start a process and return a Deferred with the stdout of that process!). The implementation is very simple, it looks like this: def callAt(self, when, f, *args, **kw): """See twisted.internet.interfaces.IReactorTime.callAt. """ return self.callLater(max(0.0, when - time()), f, *args, **kw) def callAt(self, when, callable, *args, **kw): """Call a function at a specified float time @type when: C{float} @param when: The approximate unix time (seconds since the Epoch) to call the callable. It will be called on or after the specified time; immediately if the current or a past time is given. @param callable: the callable object to call later. @param args: the arguments to call it with. @param kw: they keyword arguments to call it with. @returns: An L{IDelayedCall} object that can be used to cancel the scheduled call, by calling its C{cancel()} method. It also may be rescheduled by calling its C{delay()} or C{reset()} methods. """ -bob
participants (1)
-
Bob Ippolito