# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 # $Id$ PortSystem 1.0 PortGroup python 1.0 name py-greenlet version 0.4.0 revision 0 categories-append devel license MIT platforms darwin maintainers nomaintainer description Lightweight in-process concurrent programming long_description 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. See the \ example in test_generator.py. \ \ Greenlets are provided as a C extension module \ for the regular unmodified interpreter. homepage http://undefined.org/python/#greenlet master_sites http://pypi.python.org/packages/source/g/greenlet/ distname greenlet-${version} use_zip yes checksums rmd160 37549eb30fd6b1ed7e2c2fe575142082b57c4c50 \ sha256 3f52af03bf8a89045fc159c6a76d5642349b30fb41c3df1a22b12bbd3920b1ee python.default_version 27 python.versions 24 25 26 27 31 32 if {$name != $subport} { depends_lib-append port:py${python.version}-distribute } livecheck.type regex livecheck.url ${master_sites} livecheck.regex "greenlet-(\\d+(?:\\.\\d+)*)${extract.suffix}"