You can execute blocking call at any time of your pleasing. It will predictable block all execution paths. Typical wrapper around blocking calls is thread. Something like this (from http://twistedmatrix.com/documents/current/core/howto/threading.html): d = threads.deferToThread(yourSyncCall) d.addCallback(...) -- Konrads Smelkovs Applied IT sorcery. On Thu, Apr 22, 2010 at 9:06 AM, Andrey Fedorov <anfedorov@gmail.com> wrote:
Thanks! The main reason for the question, though, is just curiosity from playing with and learning the Twisted API, not necessarily getting the example working :)
A more direct question would have been - is there a Twisted reactor which provides a blocking call instead of a callback? Is there an accepted "best" way of wrapping an non-blocking async API with callbacks into a blocking synchronous one?
- Andrey
On Thu, Apr 22, 2010 at 12:40 AM, Alexandre Quessy <alexandre@quessy.net>wrote:
Hello Andrey, May I recommend you to look at Twisted Words? There are plenty of IRC tools there.
Regards, Alex
I'm trying to write a dead-simple interface for an IRC client library,
2010/4/21 Andrey Fedorov <anfedorov@gmail.com>: like
so: import simpleirc connection = simpleirc.Connect('irc.freenode.net', 6667) channel = connection.join('foo') find_command = re.compile(r'google ([a-z]+)').findall for msg in channel: for t in find_command(msg): channel.say("http://google.com/search?q=%s" % t) Working from the example in the docs, I'm running into trouble with the callbacks (the code is a bit lengthy, so I pasted it here). The problem is that the call to channel.__next__ needs to be returned when the callback <IRCClient instance>.privmsg is called, there doesn't seem to be a clean option of doing that. I could try to use exceptions or threads, but that seems like the wrong thing here, is there a simpler (blocking?) way of using a twisted reactor that would make this possible? Cheers, Andrey
On Wed, Apr 21, 2010 at 10:00 PM, César García <celord@gmail.com> wrote:
+1 Yes, it's great!!
2010/4/21 Kevin Horn <kevin.horn@gmail.com>
This blog series is also totally rock-a-licious.
-- http://celord.blogspot.com/
_______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
_______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
-- Alexandre Quessy http://alexandre.quessy.net/
_______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
_______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python