On Sat, 25 Jun 2005 11:36:57 +0100, Jorge Louis De Castro <[EMAIL PROTECTED]>
wrote:
>Hi,
>
>I'm new to python and I'm having trouble figuring out a way to have a thread
>running on the background that over rules the raw_input function. The example
>I'm working on is something like having a thread that prints "You're taking
>too long" every 10 seconds, while waiting for input from the user.
>The problem is that I can only read (and in batch) the thread printout
>messages on the console after giving something to raw_input.
>Is it not possible to have the thread print its stuff and then return to
>raw_input() ? Any code examples or pseudo-code or documentation directions
>will be highly appreciated.
>
>Thanks in advance
>
Here's one way you might do it without threads or raw_input()
from twisted.protocols import basic, policies
class AnnoyProtocol(basic.LineReceiver, policies.TimeoutMixin):
from os import linesep as delimiter
def connectionMade(self):
self.setTimeout(10)
def timeoutConnection(self):
self.resetTimeout()
self.sendLine("You're taking too long!")
def lineReceived(self, line):
self.resetTimeout()
self.sendLine("Thank you for the line of input!")
from twisted.internet import reactor, stdio
stdio.StandardIO(AnnoyProtocol())
reactor.run()
For fancy line editing support, twisted.conch.recvline might be of interest.
Hope this helps,
Jp
--
http://mail.python.org/mailman/listinfo/python-list