def source(self, func): timeout = self.timeout if timeout > 0: s = GObject.Timeout(timeout) else: s = GObject.Idle() s.set_callback(func) s.priority = self.priority return s