1 # Buildsheet autogenerated by ravenadm tool -- Do not edit.
3 NAMEBASE= python-greenlet
7 SDESC[v11]= Lightweight concurrent programming (3.11)
8 SDESC[v12]= Lightweight concurrent programming (3.12)
9 HOMEPAGE= https://greenlet.readthedocs.io/
10 CONTACT= Python_Automaton[python@ironwolf.systems]
13 SITES[main]= PYPI/g/greenlet
14 DISTFILE[1]= greenlet-3.0.0.tar.gz:main
19 OPTIONS_AVAILABLE= PY311 PY312
20 OPTIONS_STANDARD= none
21 VOPTS[v11]= PY311=ON PY312=OFF
22 VOPTS[v12]= PY311=OFF PY312=ON
24 DISTNAME= greenlet-3.0.0
28 [PY311].USES_ON= python:v11,sutools
30 [PY312].USES_ON= python:v12,sutools
32 [FILE:2016:descriptions/desc.single]
34 Greenlets are lightweight coroutines for in-process concurrent
37 The "greenlet" package is a spin-off of `Stackless`_, a version of
38 CPython that supports micro-threads called "tasklets". Tasklets run
39 pseudo-concurrently (typically in a single or a few OS-level threads)
40 and are synchronized with data exchanges on "channels".
42 A "greenlet", on the other hand, is a still more primitive notion of
43 micro-thread with no implicit scheduling; coroutines, in other words.
44 This is useful when you want to control exactly when your code runs.
45 You can build custom scheduled micro-threads on top of greenlet;
46 however, it seems that greenlets are useful on their own as a way to
47 make advanced control flow structures. For example, we can recreate
48 generators; the difference with Python's own generators is that our
49 generators can call nested functions and the nested functions can
50 yield values too. (Additionally, you don't need a "yield" keyword. See
51 the example in `test_generator.py
52 <https://github.com/python-greenlet/greenlet/blob/adca19bf1f287b3395896a8f41f3f4fd1797fdc7/src/greenlet/tests/test_generator.py#L1>`_).
54 Greenlets are provided as a C extension module for the regular unmodified
57 .. _`Stackless`: http://www.stackless.com
59 Who is using Greenlet?
60 ======================
62 There are several libraries that use Greenlet as a more flexible
63 alternative to Python's built in coroutine support:
69 .. _Concurrence: http://opensource.hyves.org/concurrence/
70 .. _Eventlet: http://eventlet.net/
71 .. _Gevent: http://www.gevent.org/
76 The easiest way to get Greenlet is to install it with pip::
80 Source code archives and binary distributions are available on the
81 python package index at https://pypi.org/project/greenlet
83 The source code repository is hosted on github:
84 https://github.com/python-greenlet/greenlet
86 Documentation is available on readthedocs.org:
87 https://greenlet.readthedocs.io
91 19834e3f91f485442adc1ee440171ec5d9a4840a1f7bd5ed97833544719ce10b 174704 greenlet-3.0.0.tar.gz