<h2>What's this</h2>

gaedeferred attempts to make deferred chain on Google Appengine. The design of
the deferred chain is inspired by Twisted. Because of no support for callback
and errback on taskqueue.

<h2>How to use</h2>

First of all, please ensure that the google library exists on sys.path. Then
follow bellow steps::

<verbatim>
    >>> from google.appengine.ext import deferred
    >>> from gaedeferred import Deferred

    Setup test environment. (These steps are meanless for actual use, just for doctest)
    >>> import sys
    >>> sys.path.insert(0, '.')
    >>> from tests.test_deferred import value, increase, must_be
    >>> from tests.conftest import mimic_defer
    >>> deferred.defer = mimic_defer

    >>> d = Deferred(value, 5)
    >>> d.addCallback(increase, 10)

    An alias exists for addCallback
    >>> d.next(must_be, 15)

    The deferred to be executed on an asynchronous task.
    >>> deferred.defer(d)
</verbatim>