Not Logged In

greenado 0.1.3

greenado

Greenado is a utility library that provides greenlet-based coroutines for
tornado. In tornado, coroutines allow you to perform asynchronous operations
without using callbacks, providing a pseudo-synchronous flow in your
functions.

When using gen.coroutine in tornado in a large codebase, you will notice
that they tend to be ‘infectious’ from the bottom up. In other words, for
them to be truly useful, callers of the coroutine should ‘yield’ to them,
which requires them to be a coroutine. In turn, their callers need to ‘yield’,
and so on.

Instead, greenado coroutines infect from the top down, and only requires
the greenado.groutine decorator somewhere in the call hierarchy, but it
doesn’t really matter where. Once the decorator is used, you can use
greenado.gyield to pseudo-synchronously wait for asynchronous events to
occur. This reduces complexity in large codebases, as you only need to use
the decorator at the very top of your call trees, and nowhere else.

Installation & Requirements

$ pip install greenado

greenado should work using tornado 3.2, but I only actively use it in
tornado 4+

I have only tested greenado on Linux & OSX, but I imagine that it would
work correctly on platforms that tornado and greenlet support.

Example usage

In the below examples, ‘main_function’ is your toplevel function
in the call hierarchy that needs to call things that eventually call
some asynchronous operation in tornado.