# -*- 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.1 categories-append devel license MIT PSF 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 https://pypi.python.org/packages/source/g/greenlet/ distname greenlet-${version} checksums md5 c2deda75bdda59c38cae12a77cc53adc \ rmd160 a8aac77849d51c96c46b65607f7ed7eac6723bcd \ sha256 ea671592f8460541286b133ed46a6cf5311a6b75051cc31b53e2bc38992b775a python.default_version 27 python.versions 24 25 26 27 31 32 if {$name != $subport} { depends_build port:py${python.version}-setuptools use_zip yes livecheck.type none } else { livecheck.type regex livecheck.url ${master_sites} livecheck.regex "greenlet-(\\d+(?:\\.\\d+)*)" }