Hi,

I'm trying to implement the asyncio.coroutine decorator in my wsgi app.

Here's my server code:

class AsyncIOController(WSGIController):
    def __init__(self, settings=None, executor=None, loop=None
        ):
        super(AsyncIOController, self).__init__(settings)
        # asyncio config.
        self._executor = executor
        self._loop = loop or get_event_loop()

    #@asyncio.coroutine
    def get_response(self, request=None, method='GET', data={}):
        response = super(AsyncIOController, self).get_response(request)
        return response

    @asyncio.coroutine
    def application(self, environ, start_response):
        with sessionmanager(environ):
            request.environ.update(environ)
response = self.get_response(request=request)(environ, start_response)
        #assert isinstance(response, bytes), type(response)
        return response

    @asyncio.coroutine
    def __call__(self, environ, start_response, exc_info=None):
        result = self.application(environ, start_response)
        return result

My test script:


@asyncio.coroutine
def app(environ, start_response):
    try:
result = (yield from AsyncIOController().application(environ, start_response))
        return result
    except:
        raise

if __name__ == '__main__':
    server = simple_server.make_server('127.0.0.1', 8000, app)
    server.serve_forever()

Should I attempt to decorate the AsyncIOController.get_response method with the asyncio.coroutine method ?

Any ideas how to fix this script ?

Thank you in advance,

Etienne

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to