Permalink
Fetching contributors…
Cannot retrieve contributors at this time
63 lines (50 sloc) 2.63 KB
# -*- 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
PortSystem 1.0
PortGroup python 1.0
name py-greenlet
version 0.4.15
categories-append devel
platforms darwin
license MIT PSF
python.versions 27 34 35 36 37
maintainers {stromnov @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:[string index ${python.rootname} 0]/${python.rootname}
distname greenlet-${version}
checksums rmd160 3f86fd4cd35c205f098daa6de504a9b5ed9082ab \
sha256 9416443e219356e3c31f1f918a91badf2e37acf297e2fa13d24d1cc2380f8fbc \
size 59694
if {${name} ne ${subport}} {
depends_build-append \
port:py${python.version}-setuptools
test.run yes
test.cmd python${python.branch}
test.target run-tests.py -n
livecheck.type none
}