扫码登录,获取cookies

This commit is contained in:
2026-03-09 16:10:29 +08:00
parent 754e720ba7
commit 8229208165
7775 changed files with 1150053 additions and 208 deletions

View File

@@ -0,0 +1 @@
pip

View File

@@ -0,0 +1,98 @@
Metadata-Version: 2.4
Name: greenlet
Version: 3.3.2
Summary: Lightweight in-process concurrent programming
Author-email: Alexey Borzenkov <snaury@gmail.com>
Maintainer-email: Jason Madden <jason@seecoresoftware.com>
License-Expression: MIT AND PSF-2.0
Project-URL: Homepage, https://greenlet.readthedocs.io
Project-URL: Documentation, https://greenlet.readthedocs.io
Project-URL: Repository, https://github.com/python-greenlet/greenlet
Project-URL: Issues, https://github.com/python-greenlet/greenlet/issues
Project-URL: Changelog, https://greenlet.readthedocs.io/en/latest/changes.html
Keywords: greenlet,coroutine,concurrency,threads,cooperative
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Programming Language :: C
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Description-Content-Type: text/x-rst
License-File: LICENSE
License-File: LICENSE.PSF
Provides-Extra: docs
Requires-Dist: Sphinx; extra == "docs"
Requires-Dist: furo; extra == "docs"
Provides-Extra: test
Requires-Dist: objgraph; extra == "test"
Requires-Dist: psutil; extra == "test"
Requires-Dist: setuptools; extra == "test"
Dynamic: license-file
.. This file is included into docs/history.rst
Greenlets are lightweight coroutines for in-process concurrent
programming.
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
<https://github.com/python-greenlet/greenlet/blob/adca19bf1f287b3395896a8f41f3f4fd1797fdc7/src/greenlet/tests/test_generator.py#L1>`_).
Greenlets are provided as a C extension module for the regular unmodified
interpreter.
.. _`Stackless`: http://www.stackless.com
Who is using Greenlet?
======================
There are several libraries that use Greenlet as a more flexible
alternative to Python's built in coroutine support:
- `Concurrence`_
- `Eventlet`_
- `Gevent`_
.. _Concurrence: http://opensource.hyves.org/concurrence/
.. _Eventlet: http://eventlet.net/
.. _Gevent: http://www.gevent.org/
Getting Greenlet
================
The easiest way to get Greenlet is to install it with pip::
pip install greenlet
Source code archives and binary distributions are available on the
python package index at https://pypi.org/project/greenlet
The source code repository is hosted on github:
https://github.com/python-greenlet/greenlet
Documentation is available on readthedocs.org:
https://greenlet.readthedocs.io

View File

@@ -0,0 +1,123 @@
../../include/site/python3.11/greenlet/greenlet.h,sha256=goR9ZprGoq71mBRhzBuexFvTNryvf4uceMHMIaSxh3o,4919
greenlet-3.3.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
greenlet-3.3.2.dist-info/METADATA,sha256=Y4bKTSNiJfZi1rz9qz1ERF0EQPL70OQZPFMQRcJGkjg,3829
greenlet-3.3.2.dist-info/RECORD,,
greenlet-3.3.2.dist-info/WHEEL,sha256=Qh2avHng3Fd3MK94tkj7sAzq7BeNPYVHo4ICDcBUXug,101
greenlet-3.3.2.dist-info/licenses/LICENSE,sha256=q5d7ZUYFZwMZUJSB7OSRmPQFoSk3KsOMlvUc2WwvRS4,1464
greenlet-3.3.2.dist-info/licenses/LICENSE.PSF,sha256=ae-micx67Hc2I20wOcHWZeSwxzSlv-pav2MwI6uy__Q,2471
greenlet-3.3.2.dist-info/top_level.txt,sha256=YSnRsCRoO61JGlP57o8iKL6rdLWDWuiyKD8ekpWUsDc,9
greenlet/CObjects.cpp,sha256=jdL4suQ4l3rNX4T-quyF9jnXBMFhfAMqikjzYCwP5TM,3665
greenlet/PyGreenlet.cpp,sha256=9HResNRx-0KPU9Ea6EMPmlzVgsqHH9JPAPiT2Am3rnA,27106
greenlet/PyGreenlet.hpp,sha256=LhUVgLOiWGOlnfjHfcpjjqhYuGrOdOsuKjhyVyRT0f0,1498
greenlet/PyGreenletUnswitchable.cpp,sha256=XGAYX6LkaJAywv7yN6AJEJtbeC5XpuwvIUVF7XBBWzg,4522
greenlet/PyModule.cpp,sha256=Hcg7v335rvVQYe8znjzIjLkZT5qLCFDIgkN9tfJfOkA,8941
greenlet/TBrokenGreenlet.cpp,sha256=_hLV4vPhUsiwb5rnNnrUNbyCBHe0NPbWvlB-UtyNTOI,1066
greenlet/TExceptionState.cpp,sha256=GKPJWNgvUtUVicGW2gl5nlT3qud-GeBNlKxSiCoWALU,1421
greenlet/TGreenlet.cpp,sha256=Z5_8INRQ04l68pgQTyRQJRrRn2fMVCTSw39bIioLx8k,26634
greenlet/TGreenlet.hpp,sha256=C2N-jJJoH37mnQOZdU6dpHzVk8Jt6ZrtpyafebQ1xLI,29537
greenlet/TGreenletGlobals.cpp,sha256=bD_S4-irJj_kmEwWfyUrFfNXMLx65-ALpNyuLdnDjP8,3358
greenlet/TMainGreenlet.cpp,sha256=aUtJqc9eQVtjIe9ueqlDl2KmpLVErfeawtu1PKOmoC0,3580
greenlet/TPythonState.cpp,sha256=65znGlG30s6voSXVIsvYNE42L9x6I4_TxvqYIZjGTA8,17594
greenlet/TStackState.cpp,sha256=T295c_VRn3ov2yQ8n0evJN73YlieXX_8Tg2ddR4XRZc,7646
greenlet/TThreadState.hpp,sha256=Bp6dM78tuRGvMKRp8oXnJh9S0eZwE4eIXuP-NP0myfU,20982
greenlet/TThreadStateCreator.hpp,sha256=uWnKS-OXOutt8lcDDTCxtZ1hOnJjDtMZM_whep_qtko,2722
greenlet/TThreadStateDestroy.cpp,sha256=tVsIR4bCsCbWOG28YWbWOCuCeYqN3p8PQTDievFxwKM,8618
greenlet/TUserGreenlet.cpp,sha256=ZN7_FxmN5IAb95wpcP6OwL87iugXYHSptjosHRVZ8Jw,24215
greenlet/__init__.py,sha256=KiSKJnvjb2VB32zZ5idU1HxyRa1INTre80Xgr1ObbPA,1794
greenlet/__pycache__/__init__.cpython-311.pyc,,
greenlet/_greenlet.cp311-win_amd64.pyd,sha256=i_dl4_srgWKPrQvWKiHCwkGHLT7krpa43IVd3rbqPzw,71680
greenlet/greenlet.cpp,sha256=WLJ7tB8udLGkLn18GPSUVYZdms1i02omumzZBlxTvlI,11416
greenlet/greenlet.h,sha256=goR9ZprGoq71mBRhzBuexFvTNryvf4uceMHMIaSxh3o,4919
greenlet/greenlet_allocator.hpp,sha256=Ymeor5KOG_MmiBRSpJY6InFsatIJHnBPBrO7ETzliFE,1911
greenlet/greenlet_compiler_compat.hpp,sha256=tP2AfsUu3zjkSqh5QUS9MWgI2675-wMpgwesmli4po0,4444
greenlet/greenlet_cpython_compat.hpp,sha256=26BZd7HijX5G2AKg5fqYTbPVCne9d2eqxIxCBAfQWwM,4409
greenlet/greenlet_exceptions.hpp,sha256=E6M80eSszo5dfEfvfm0iHJlEOSNMY0mepzif64Z6mfY,4674
greenlet/greenlet_internal.hpp,sha256=Z-S_NZgq4ykMtWjfsfjgt6TuS_tmK7-BmRt3KBG3CvE,2816
greenlet/greenlet_msvc_compat.hpp,sha256=6zttIzyIoiSREOGt2zGEos7sirU4_Bqxo-7UU6v7L4Y,3295
greenlet/greenlet_refs.hpp,sha256=7HyYNspkZNg7iEHNj90Lmg9M782mgg1735ww5ufO1mo,35554
greenlet/greenlet_slp_switch.hpp,sha256=YRz-KWeqi8E9_6ysufslzEVbus6EM0WtceVWXm5A0PQ,3401
greenlet/greenlet_thread_support.hpp,sha256=KoLKoz1rG2NT37w1bA_GEAz370VLUPGKTfUQHqtKwFA,898
greenlet/platform/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
greenlet/platform/__pycache__/__init__.cpython-311.pyc,,
greenlet/platform/setup_switch_x64_masm.cmd,sha256=ZpClUJeU0ujEPSTWNSepP0W2f9XiYQKA8QKSoVou8EU,143
greenlet/platform/switch_aarch64_gcc.h,sha256=Bzt3HLXqPpBeXMFqPHv_iFrl3qQ-hLbg5U1-BLxhvDA,4431
greenlet/platform/switch_alpha_unix.h,sha256=k9LA3BAtojTCGqMzmYyWg5I73jjHDqDE_UKZuWrEITE,701
greenlet/platform/switch_amd64_unix.h,sha256=YvMD530xkEG_S4zBSgR3IlvARJMAiIP5lO85kH-Ixpw,2835
greenlet/platform/switch_arm32_gcc.h,sha256=89_taedd3VelvYc_-TywNEVqAV77x_zDYaAPtOVGPP0,2558
greenlet/platform/switch_arm32_ios.h,sha256=GEi3DbjVYwuSKsA6PUBtwV27oWfbtFpj_nZ-Dx2Yrz8,1959
greenlet/platform/switch_arm64_masm.asm,sha256=RtKHfJETzcd6RVUv5UL1jhXCuzVc5IIES-NtPT-nPFo,1298
greenlet/platform/switch_arm64_masm.obj,sha256=DmLnIB_icoEHAz1naue_pJPTZgR9ElM7-Nmztr-o9_U,746
greenlet/platform/switch_arm64_msvc.h,sha256=CnFzBbEqaIliXwzNTxBtbG5WNpfphuZatpHTXVUfylI,414
greenlet/platform/switch_csky_gcc.h,sha256=dJx1cCkiqgNari_cOY_KfnjzR3G-J2b_Mf6TKNzaXvk,1379
greenlet/platform/switch_loongarch64_linux.h,sha256=mydHgN6yFNQzbDRWTYTYXM03rU_vQngeJyLTrGbY4qs,810
greenlet/platform/switch_m68k_gcc.h,sha256=s8A58AzT0_csU9H7j5FlR9A8myKP3CJLWfDij756Eiw,966
greenlet/platform/switch_mips_unix.h,sha256=rPH5D4Rn2IzUBBHHJwHF7Ga9QHvtvoiWz_LJtJVDEN8,1527
greenlet/platform/switch_ppc64_aix.h,sha256=0kpzjH-gFk6l7J0qjNfFALAVydm-Gb-3xQEgeFHC5TQ,3963
greenlet/platform/switch_ppc64_linux.h,sha256=J2H7nQdiZoFhkVWGWEFES6758VFspQ7PkUbHshZf8yI,3920
greenlet/platform/switch_ppc_aix.h,sha256=7akkI638_kXcTj-z33z4Hp-yXCzBKZCgc9oywjgj2sI,3028
greenlet/platform/switch_ppc_linux.h,sha256=z1G0G3sFmVeuweZpbfnW4T4YsqXLsGpAGkLhN1SzETg,2843
greenlet/platform/switch_ppc_macosx.h,sha256=x6eeMN4JlCumd6oL2RnbTO24YvEi5Is1IwANClgcxbQ,2706
greenlet/platform/switch_ppc_unix.h,sha256=B4e2xvK37ixz7E3eXUyafm4oJYwnSStbBk4HI-egl7M,2734
greenlet/platform/switch_riscv_unix.h,sha256=MBhaF319hLczUNtfuyuBQFlw3fP9cXtv8fTnLbroBTc,990
greenlet/platform/switch_s390_unix.h,sha256=vlduFQw6kpkalkx5mreVugwD77_3JZZmEGgLUUbCZg8,2850
greenlet/platform/switch_sh_gcc.h,sha256=Salb5aBXHT_C6myIAB9QzoVgjtD4T4b1BsDOoGbRCIg,937
greenlet/platform/switch_sparc_sun_gcc.h,sha256=A7T5AMMzTQaW7ZTLNAVl0RwJYc1ON_ZagcRR1dRU43g,2889
greenlet/platform/switch_x32_unix.h,sha256=brLdkEECmpmMql9k4RNj1SzeAeat77LumkJy8O9G62Y,1572
greenlet/platform/switch_x64_masm.asm,sha256=krAM4iTcFFUccNlAptXgx41oevPO5zsGOAdMdjU0rAY,1951
greenlet/platform/switch_x64_masm.obj,sha256=GNtTNxYdo7idFUYsQv-mrXWgyT5EJ93-9q90lN6svtQ,1078
greenlet/platform/switch_x64_msvc.h,sha256=LH4ZgQTC0PRuG38H7nRCUR5dDLQrz61bxaG4-5mZ9S0,1864
greenlet/platform/switch_x86_msvc.h,sha256=nWtRXFfHb9rE3pjCe5o5tdoJyctklHBD4kVq7LX9fLs,13164
greenlet/platform/switch_x86_unix.h,sha256=KqakzLbWleoUwgtpjDGt_4o63bOy5Q0Cxq8Re5n5OyA,3164
greenlet/slp_platformselect.h,sha256=8tpogbpy7l8mS88NsVokrVpy8rGQWJQX_X3wjGGKsGQ,4036
greenlet/tests/__init__.py,sha256=-Ev1aQIYbndrP0Dfc_P8g6JlOKnJWMOJFSrLOl3wHrQ,9984
greenlet/tests/__pycache__/__init__.cpython-311.pyc,,
greenlet/tests/__pycache__/fail_clearing_run_switches.cpython-311.pyc,,
greenlet/tests/__pycache__/fail_cpp_exception.cpython-311.pyc,,
greenlet/tests/__pycache__/fail_initialstub_already_started.cpython-311.pyc,,
greenlet/tests/__pycache__/fail_slp_switch.cpython-311.pyc,,
greenlet/tests/__pycache__/fail_switch_three_greenlets.cpython-311.pyc,,
greenlet/tests/__pycache__/fail_switch_three_greenlets2.cpython-311.pyc,,
greenlet/tests/__pycache__/fail_switch_two_greenlets.cpython-311.pyc,,
greenlet/tests/__pycache__/leakcheck.cpython-311.pyc,,
greenlet/tests/__pycache__/test_contextvars.cpython-311.pyc,,
greenlet/tests/__pycache__/test_cpp.cpython-311.pyc,,
greenlet/tests/__pycache__/test_extension_interface.cpython-311.pyc,,
greenlet/tests/__pycache__/test_gc.cpython-311.pyc,,
greenlet/tests/__pycache__/test_generator.cpython-311.pyc,,
greenlet/tests/__pycache__/test_generator_nested.cpython-311.pyc,,
greenlet/tests/__pycache__/test_greenlet.cpython-311.pyc,,
greenlet/tests/__pycache__/test_greenlet_trash.cpython-311.pyc,,
greenlet/tests/__pycache__/test_interpreter_shutdown.cpython-311.pyc,,
greenlet/tests/__pycache__/test_leaks.cpython-311.pyc,,
greenlet/tests/__pycache__/test_stack_saved.cpython-311.pyc,,
greenlet/tests/__pycache__/test_throw.cpython-311.pyc,,
greenlet/tests/__pycache__/test_tracing.cpython-311.pyc,,
greenlet/tests/__pycache__/test_version.cpython-311.pyc,,
greenlet/tests/__pycache__/test_weakref.cpython-311.pyc,,
greenlet/tests/_test_extension.c,sha256=NGj8mIpnvlfLi4JU2rHSGo4LNZLD9UThOfHmvSZj2is,7179
greenlet/tests/_test_extension.cp311-win_amd64.pyd,sha256=MIcoP1kK2u13ZZzCwLit55eQjI7E-rT11ibwFtnB0Vw,14336
greenlet/tests/_test_extension_cpp.cp311-win_amd64.pyd,sha256=vfXKRbBFyoadslCgMlLL-gF1VFrsDhjJvztaEU1TPNo,15872
greenlet/tests/_test_extension_cpp.cpp,sha256=BQN0BP-yyNUP7mEHTDNLxOLCvPKfvWR-g-2gYIHKbPs,6915
greenlet/tests/fail_clearing_run_switches.py,sha256=v6lj1G7GTRml7CrUPRuzxkk68p1MfMmNwykba1mFc3c,1310
greenlet/tests/fail_cpp_exception.py,sha256=-nUH8slJOxgTVfFx2uE7HwDlVh-dEskr6zR-jyjsJgM,1018
greenlet/tests/fail_initialstub_already_started.py,sha256=Ku8SxVRpwE5TK8-7Netnd3i6_nrkUGtKpTR8TisQDzE,2039
greenlet/tests/fail_slp_switch.py,sha256=FmUo8YsGmXt1HqAu9nsJZwH5OKjgmgzH2nkc8iExCRs,553
greenlet/tests/fail_switch_three_greenlets.py,sha256=KXffSSGYpKFrfLzF9gDuVIvSs-GKVuDQw5cxdnHF14s,1000
greenlet/tests/fail_switch_three_greenlets2.py,sha256=JDXE9CQdVeJ1rw4YGC1wA2AC3hN3N3JosLcUfjX1rm4,1340
greenlet/tests/fail_switch_two_greenlets.py,sha256=UuUCa6YqV7Lshm3Ra7MzuLnIpw_1NVZtT-Num0DVMBg,858
greenlet/tests/leakcheck.py,sha256=Tli9zbAN_saaCZWYgKbbsrSRctowqIcZKH4GzoimzGs,12988
greenlet/tests/test_contextvars.py,sha256=J8WpLsWaDnXbNVTl6OSEKhyoPF3T5DooBLpbRMf0qv0,10853
greenlet/tests/test_cpp.py,sha256=Kn_fZONxXA_C5xRkFZALGTsAeFJDtRAIhR7z7IPCaHg,2809
greenlet/tests/test_extension_interface.py,sha256=TlayHEP63tRrrjmBdTBvI9rW4ZBBp5ZxMSmuXHOGq4s,3944
greenlet/tests/test_gc.py,sha256=lWYPr4MfFMyAt7zSyUnYxK4Yb_HWsdagOrnSMXZC6BM,3008
greenlet/tests/test_generator.py,sha256=46DOhdQ61iyAv4Du_j5BVVrwlEoZwmlro6j5DKASQ7Y,1299
greenlet/tests/test_generator_nested.py,sha256=MjgSMvUtJ2sd9zXSVMTBobsRXQp64rHTWS3xyoqsAbg,3886
greenlet/tests/test_greenlet.py,sha256=r-qC8A0LfybrxABAG51cZdeoeRsMmGCGNNn8zetwdXU,49804
greenlet/tests/test_greenlet_trash.py,sha256=f3YdPXMO-S5EcrYzpfv97M3a-kYwgYTO_6hfyXsC_BQ,8134
greenlet/tests/test_interpreter_shutdown.py,sha256=K3D8psBoD8YZuCQIFKzE0OC7Ra_O3IqZQZgAnYJjl_A,12269
greenlet/tests/test_leaks.py,sha256=e7NeJYZB3aCIi73gJln9AaILcAZAFiE-E66NTleNZyI,19397
greenlet/tests/test_stack_saved.py,sha256=2r2x_sTVoMTOjzTGVQHhYFRKyM1Foto4k04RsO9Gda4,465
greenlet/tests/test_throw.py,sha256=hRbOM7chvmejDOyK99_9tVXZtLIVXb8dGeNCE1Whslk,3840
greenlet/tests/test_tracing.py,sha256=uNItNmw1ZuJSW0qQ5uyQM6eMeT1TOAfmqfrhoSfrWZY,8890
greenlet/tests/test_version.py,sha256=GsqWNSUf9oXAduSzenycdWX9WTcDqz3sbY5RL8eVe-s,1380
greenlet/tests/test_weakref.py,sha256=vg44gv40Ip1zSfgu-NPWFKDUvc-Z_ew4UFjszBQXf0k,918

View File

@@ -0,0 +1,5 @@
Wheel-Version: 1.0
Generator: setuptools (82.0.0)
Root-Is-Purelib: false
Tag: cp311-cp311-win_amd64

View File

@@ -0,0 +1,30 @@
The following files are derived from Stackless Python and are subject to the
same license as Stackless Python:
src/greenlet/slp_platformselect.h
files in src/greenlet/platform/ directory
See LICENSE.PSF and http://www.stackless.com/ for details.
Unless otherwise noted, the files in greenlet have been released under the
following MIT license:
Copyright (c) Armin Rigo, Christian Tismer and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View File

@@ -0,0 +1,47 @@
PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
--------------------------------------------
1. This LICENSE AGREEMENT is between the Python Software Foundation
("PSF"), and the Individual or Organization ("Licensee") accessing and
otherwise using this software ("Python") in source or binary form and
its associated documentation.
2. Subject to the terms and conditions of this License Agreement, PSF hereby
grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
analyze, test, perform and/or display publicly, prepare derivative works,
distribute, and otherwise use Python alone or in any derivative version,
provided, however, that PSF's License Agreement and PSF's notice of copyright,
i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
2011 Python Software Foundation; All Rights Reserved" are retained in Python
alone or in any derivative version prepared by Licensee.
3. In the event Licensee prepares a derivative work that is based on
or incorporates Python or any part thereof, and wants to make
the derivative work available to others as provided herein, then
Licensee hereby agrees to include in any such work a brief summary of
the changes made to Python.
4. PSF is making Python available to Licensee on an "AS IS"
basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
INFRINGE ANY THIRD PARTY RIGHTS.
5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
6. This License Agreement will automatically terminate upon a material
breach of its terms and conditions.
7. Nothing in this License Agreement shall be deemed to create any
relationship of agency, partnership, or joint venture between PSF and
Licensee. This License Agreement does not grant permission to use PSF
trademarks or trade name in a trademark sense to endorse or promote
products or services of Licensee, or any third party.
8. By copying, installing or otherwise using Python, Licensee
agrees to be bound by the terms and conditions of this License
Agreement.

View File

@@ -0,0 +1 @@
greenlet