[Twisted-Python] Stackless Python Examples Re: InlineCallback Friendly ?

Andrew Francis andrewfr_ice at yahoo.com
Sat Apr 19 14:47:38 EDT 2008

Hi Folks:

--- Andrew Francis <andrewfr_ice at yahoo.com> wrote:

[J-P Calderone]
>The only kind of dispatcher which is really hostile
>towards inlineCallbacks is the kind which is
>hostile towards Deferreds in general - ie, one which
>requires a return value and does not support 

[A Francis] 
>Once again Jean-Paul, I find your explanation super
>helpful and save me time going down the wrong path. 

Based on Jean-Paul's explanation, here are some code
snippets showing how to handle other protocols with
Stackless Python and Twisted. This is a continuation
of the technique I used in "Adventures" to prevent the
reactor from deadlocking.

Currently I am rethinking the techniques - I believe
there is a way to reduce spawning tasklets - not that
tasklets are all that expensive....

Here is an example with resources adapted from the Abe
Fettig example on page 48 of "Twisted Network
Programming Essentials." I am still getting my feet
wet with resources. I intend to use this to help
prototype REST support in WS-BPEL.

class HomePage(resource.Resource):
    def doWork(self):
        message = """
        Hello World    
    def render(self, request):
        self.request = request
        return server.NOT_DONE_YET

and here is one with PyAMF .2

(I remember sketching this one out on a napkin at
PyCon 2008)

class EchoServer(TwistedGateway):
    def __init__(self):
        super(EchoServer, self).__init__()
        self.request = None
    def __echo__(self, request, deferred, y):
        print "=>", request, deferred, y
    def echo(self, request, y):
        print "=>", request, y
        deferred = defer.Deferred()
deferred, y)
        return deferred


Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ

More information about the Twisted-Python mailing list