Ravenports generated: 12 Oct 2023 22:54
[ravenports.git] / bucket_69 / python-greenlet
1 # Buildsheet autogenerated by ravenadm tool -- Do not edit.
2
3 NAMEBASE=               python-greenlet
4 VERSION=                3.0.0
5 KEYWORDS=               python
6 VARIANTS=               v11 v12
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]
11
12 DOWNLOAD_GROUPS=        main
13 SITES[main]=            PYPI/g/greenlet
14 DISTFILE[1]=            greenlet-3.0.0.tar.gz:main
15 DF_INDEX=               1
16 SPKGS[v11]=             single
17 SPKGS[v12]=             single
18
19 OPTIONS_AVAILABLE=      PY311 PY312
20 OPTIONS_STANDARD=       none
21 VOPTS[v11]=             PY311=ON PY312=OFF
22 VOPTS[v12]=             PY311=OFF PY312=ON
23
24 DISTNAME=               greenlet-3.0.0
25
26 GENERATED=              yes
27
28 [PY311].USES_ON=                        python:v11,sutools
29
30 [PY312].USES_ON=                        python:v12,sutools
31
32 [FILE:2016:descriptions/desc.single]
33
34 Greenlets are lightweight coroutines for in-process concurrent
35 programming.
36
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".
41
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>`_).
53
54 Greenlets are provided as a C extension module for the regular unmodified
55 interpreter.
56
57 .. _`Stackless`: http://www.stackless.com
58
59 Who is using Greenlet?
60 ======================
61
62 There are several libraries that use Greenlet as a more flexible
63 alternative to Python's built in coroutine support:
64
65  - `Concurrence`_
66  - `Eventlet`_
67  - `Gevent`_
68
69 .. _Concurrence: http://opensource.hyves.org/concurrence/
70 .. _Eventlet: http://eventlet.net/
71 .. _Gevent: http://www.gevent.org/
72
73 Getting Greenlet
74 ================
75
76 The easiest way to get Greenlet is to install it with pip::
77
78   pip install greenlet
79
80 Source code archives and binary distributions are available on the
81 python package index at https://pypi.org/project/greenlet
82
83 The source code repository is hosted on github:
84 https://github.com/python-greenlet/greenlet
85
86 Documentation is available on readthedocs.org:
87 https://greenlet.readthedocs.io
88
89
90 [FILE:100:distinfo]
91 19834e3f91f485442adc1ee440171ec5d9a4840a1f7bd5ed97833544719ce10b       174704 greenlet-3.0.0.tar.gz
92