# -*- 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.10 revision 0 categories-append devel platforms darwin license MIT PSF python.versions 26 27 33 34 35 maintainers stromnov openmaintainer 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 pypi:g/greenlet distname greenlet-${version} checksums rmd160 b3868b9ff4e2bfd8734a0f56cd628828fa494931 \ sha256 9a98d49f63259b16d3627976b69dd856888a376c498b091c8e9ead56d5098ca8 if {${name} ne ${subport}} { depends_build-append \ port:py${python.version}-setuptools use_zip yes livecheck.type none } else { livecheck.type pypi }