Module: cogen.web.async
cogen.web.wsgi server is asynchronous by default. If you need to run a app that
uses wsgi.input synchronously you need to wrapp it in
Wsgi asynchronous api only provides a read operation at the moment. Here's a example:
SynchronousInputMiddleware.Wsgi asynchronous api only provides a read operation at the moment. Here's a example:
buff = StringIO()
while 1:
yield environ['cogen.input'].Read(self.buffer_length)
result = environ['cogen.wsgi'].result
if isinstance(result, Exception):
import traceback
traceback.print_exception(*environ['cogen.wsgi'].exception)
break
else:
if not result:
break
buff.write(result)
buff.seek(0)
# ...
# do something with the data
# ...
Classes
COGENOperationCall
COGENOperationWrapper
COGENProxy
Read
This is actually a hack that mixes ReadAll and ReadLine and
patches their state attributes. Hopefully i'll evolve it to
something more elegant at some point.
ReadLine
Same a async.Read but doesn't work with chunked input (it would complicate
things too much at the moment).
SynchronousInputMiddleware
Middleware for providing wsgi.input to the app.