           SPELL=greenlet
         VERSION=0.4.2
          SOURCE=$SPELL-$VERSION.zip
     SOURCE_HASH=sha512:9596b740921e4a80bcb43adb725a7a4ea428dadc10ba55f8840837ba685b010c273a4a2bd62c5ba4bfdf27ce87c914a83714d762bacafb8e0a3cd7e2a9675992
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
   SOURCE_URL[0]=http://pypi.python.org/packages/source/g/$SPELL/$SOURCE
        DOC_DIRS=""
      LICENSE[0]=MIT
        WEB_SITE=https://github.com/python-greenlet/greenlet
         ENTERED=20140520
           SHORT="lightweight in-process concurrent programming"
cat << EOF
The greenlet package is a spin-off of Stackless, a version of CPython that
supports micro-threads called "tasklets". Tasklets run pseudo-concurrently
(typically in a single or a few OS-level threads) and are synchronized with data
exchanges on "channels".

A "greenlet", on the other hand, is a still more primitive notion of
micro-thread with no implicit scheduling; coroutines, in other words. This is
useful when you want to control exactly when your code runs. You can build
custom scheduled micro-threads on top of greenlet; however, it seems that
greenlets are useful on their own as a way to make advanced control
flow structures. For example, we can recreate generators; the difference with
Python's own generators is that our generators can call nested functions and the
nested functions can yield values too. Additionally, you don't need a "yield"
keyword.

Greenlets are provided as a C extension module for the regular unmodified
interpreter.

Greenlets are lightweight coroutines for in-process concurrent programming.
EOF
