           SPELL=greenlet
         VERSION=1.1.3.post0
              VX=ea/37/e54ce453b298e890f59dba3db32461579328a07d5b65e3eabf80f971c099
          SOURCE=$SPELL-$VERSION.tar.gz
   SOURCE_URL[0]="https://files.pythonhosted.org/packages/${VX}/${SOURCE}"
     SOURCE_HASH=sha512:71fb5d8ca55df6a1f30a4fa1c6c136cae3f774349719d538d6c39f244ffb2a5eee8686cc38b1cda72ad4fc9015713b7421722867260acddc84cda18370cdd3ff
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
        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
