GET /api/v1/ports/py39-greenlet/
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "name": "py39-greenlet",
    "portdir": "python/py-greenlet",
    "version": "3.0.1",
    "license": "MIT and PSF",
    "platforms": "darwin",
    "epoch": 0,
    "replaced_by": null,
    "homepage": "https://github.com/python-greenlet/greenlet",
    "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.",
    "active": true,
    "categories": [
        "devel",
        "python"
    ],
    "maintainers": [
        {
            "name": "stromnov",
            "github": "stromnov",
            "ports_count": 2297
        }
    ],
    "variants": [
        "universal"
    ],
    "dependencies": [
        {
            "type": "build",
            "ports": [
                "py39-build",
                "py39-setuptools",
                "py39-wheel",
                "py39-installer",
                "clang-16"
            ]
        },
        {
            "type": "lib",
            "ports": [
                "python39"
            ]
        },
        {
            "type": "test",
            "ports": [
                "py39-pytest"
            ]
        }
    ],
    "depends_on": [
        {
            "type": "lib",
            "ports": [
                "py39-neovim",
                "py39-gevent",
                "py39-scoop",
                "py39-sqlalchemy",
                "py39-eventlet",
                "py39-bpython"
            ]
        },
        {
            "type": "test",
            "ports": [
                "py39-structlog",
                "py39-werkzeug"
            ]
        }
    ]
}