actualizado 3-sept

This commit is contained in:
2026-09-03 19:40:44 +02:00
parent 89992823b4
commit 5d2912f789
4338 changed files with 350157 additions and 386 deletions
@@ -0,0 +1 @@
pip
@@ -0,0 +1,131 @@
Metadata-Version: 2.4
Name: gunicorn
Version: 26.2.0
Summary: WSGI HTTP Server for UNIX
Author-email: Benoit Chesneau <[email protected]>
License-Expression: MIT
Project-URL: Homepage, https://gunicorn.org
Project-URL: Documentation, https://gunicorn.org
Project-URL: Issue tracker, https://github.com/benoitc/gunicorn/issues
Project-URL: Source code, https://github.com/benoitc/gunicorn
Project-URL: Changelog, https://gunicorn.org/news/
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Other Environment
Classifier: Intended Audience :: Developers
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX
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 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Internet
Classifier: Topic :: Utilities
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Server
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: gevent
Requires-Dist: gevent>=24.10.1; extra == "gevent"
Requires-Dist: packaging; extra == "gevent"
Provides-Extra: tornado
Requires-Dist: tornado>=6.5.7; extra == "tornado"
Provides-Extra: gthread
Provides-Extra: setproctitle
Requires-Dist: setproctitle; extra == "setproctitle"
Provides-Extra: http2
Requires-Dist: h2>=4.4.1; extra == "http2"
Provides-Extra: fast
Requires-Dist: gunicorn_h1c>=0.6.9; extra == "fast"
Provides-Extra: testing
Requires-Dist: gevent>=24.10.1; extra == "testing"
Requires-Dist: h2>=4.4.1; extra == "testing"
Requires-Dist: coverage; extra == "testing"
Requires-Dist: packaging; extra == "testing"
Requires-Dist: pytest>=9.0.3; extra == "testing"
Requires-Dist: pytest-cov; extra == "testing"
Requires-Dist: pytest-asyncio; extra == "testing"
Requires-Dist: uvloop>=0.19.0; extra == "testing"
Requires-Dist: httpx[http2]>=0.23.0; extra == "testing"
Requires-Dist: inotify>=0.2.10; sys_platform == "linux" and extra == "testing"
Dynamic: license-file
# Gunicorn
<p align="center">
<strong>Gunicorn is maintained by volunteers. If it powers your production, please consider supporting us:</strong><br>
<a href="https://github.com/sponsors/benoitc"><img src="https://img.shields.io/badge/GitHub_Sponsors-❤-ea4aaa?style=for-the-badge&logo=github" alt="GitHub Sponsors"></a>
<a href="https://checkout.revolut.com/pay/74cf6fe1-358e-4880-b800-3f0936ce94be"><img src="https://img.shields.io/badge/Revolut-Donate-191c20?style=for-the-badge" alt="Revolut"></a>
</p>
[![PyPI version](https://img.shields.io/pypi/v/gunicorn.svg?style=flat)](https://pypi.python.org/pypi/gunicorn)
[![Supported Python versions](https://img.shields.io/pypi/pyversions/gunicorn.svg)](https://pypi.python.org/pypi/gunicorn)
[![Build Status](https://github.com/benoitc/gunicorn/actions/workflows/tox.yml/badge.svg)](https://github.com/benoitc/gunicorn/actions/workflows/tox.yml)
Gunicorn 'Green Unicorn' is a Python WSGI HTTP Server for UNIX. It's a pre-fork
worker model ported from Ruby's [Unicorn](https://bogomips.org/unicorn/) project. The Gunicorn server is broadly
compatible with various web frameworks, simply implemented, light on server
resource usage, and fairly speedy.
**New in v25**: Per-app worker allocation for dirty arbiters, HTTP/2 support (beta)!
## Quick Start
```bash
pip install gunicorn
gunicorn myapp:app --workers 4
```
For ASGI applications (FastAPI, Starlette):
```bash
gunicorn myapp:app --worker-class asgi
```
## Features
- WSGI support for Django, Flask, Pyramid, and any WSGI framework
- **ASGI support** for FastAPI, Starlette, Quart
- **HTTP/2 support** (beta) with multiplexed streams
- **Dirty Arbiters** (beta) for heavy workloads (ML models, long-running tasks)
- uWSGI binary protocol for nginx integration
- Multiple worker types: sync, gthread, gevent, asgi
- Graceful worker process management
- Compatible with Python 3.10+
## Documentation
Full documentation at https://gunicorn.org
- [Quickstart](https://gunicorn.org/quickstart/)
- [Configuration](https://gunicorn.org/configure/)
- [Deployment](https://gunicorn.org/deploy/)
- [Settings Reference](https://gunicorn.org/reference/settings/)
## Community
- Report bugs on [GitHub Issues](https://github.com/benoitc/gunicorn/issues)
- [Chat with us in your browser](https://web.libera.chat/?channels=%23gunicorn) (`#gunicorn` on Libera.Chat, no account needed)
- See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines
## Support
Powering Python apps since 2010. Support continued development.
[![Become a Sponsor](https://img.shields.io/badge/Become_a_Sponsor-❤-ff69b4)](https://gunicorn.org/sponsor/)
### Sponsors
<a href="https://enki-multimedia.eu"><img src="docs/content/assets/enki-multimedia.svg" alt="Enki Multimedia" height="50" /></a>
## License
Gunicorn is released under the MIT License. See the [LICENSE](https://github.com/benoitc/gunicorn/blob/master/LICENSE) file for details.
@@ -0,0 +1,146 @@
../../../bin/gunicorn,sha256=oLMtGieYVRGpg6EWpXwWKEqEhoetCxCKRIr9f6YFopA,254
../../../bin/gunicornc,sha256=FiEqZ8-_cjpxuCQyl5n1Un10KcypNVsFEv6zTnxt2Q8,252
gunicorn-26.2.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
gunicorn-26.2.0.dist-info/METADATA,sha256=xBUDGqZvHBEbl8XUEKBeVwZJoyJss0nF7w4Y67msFsU,5544
gunicorn-26.2.0.dist-info/RECORD,,
gunicorn-26.2.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
gunicorn-26.2.0.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
gunicorn-26.2.0.dist-info/entry_points.txt,sha256=a82d7tohPJ0qraihJB39VR1fezRrmmfbIMGS3pkAsa8,147
gunicorn-26.2.0.dist-info/licenses/LICENSE,sha256=FFfjCo9xM0808kG58mfn9VVlRJN7wsF1G8WLUiUMBUM,1136
gunicorn-26.2.0.dist-info/top_level.txt,sha256=cdMaa2yhxb8do-WioY9qRHUCfwf55YztjwQCncaInoE,9
gunicorn/__init__.py,sha256=ySjHX5Es1_nw6iwEVormmLWp-qDHtwynSPHTX6kgNJ4,257
gunicorn/__main__.py,sha256=tviepyuwKyB6SPV28t2eZy_5PcCpT56z7QZjzbMpkQw,338
gunicorn/__pycache__/__init__.cpython-311.pyc,,
gunicorn/__pycache__/__main__.cpython-311.pyc,,
gunicorn/__pycache__/arbiter.cpython-311.pyc,,
gunicorn/__pycache__/config.cpython-311.pyc,,
gunicorn/__pycache__/debug.cpython-311.pyc,,
gunicorn/__pycache__/errors.cpython-311.pyc,,
gunicorn/__pycache__/glogging.cpython-311.pyc,,
gunicorn/__pycache__/pidfile.cpython-311.pyc,,
gunicorn/__pycache__/reloader.cpython-311.pyc,,
gunicorn/__pycache__/sock.cpython-311.pyc,,
gunicorn/__pycache__/systemd.cpython-311.pyc,,
gunicorn/__pycache__/util.cpython-311.pyc,,
gunicorn/app/__init__.py,sha256=8m9lIbhRssnbGuBeQUA-vNSNbMeNju9Q_PUnnNfqOYU,105
gunicorn/app/__pycache__/__init__.cpython-311.pyc,,
gunicorn/app/__pycache__/base.cpython-311.pyc,,
gunicorn/app/__pycache__/pasterapp.cpython-311.pyc,,
gunicorn/app/__pycache__/wsgiapp.cpython-311.pyc,,
gunicorn/app/base.py,sha256=KV2aIO50JTlakHL82q9zu3LhCJrDmUmaViwSy14Gk6U,7370
gunicorn/app/pasterapp.py,sha256=BIa0mz_J86NuObUw2UIyjLYKUm8V3b034pJrTkvF-sA,2016
gunicorn/app/wsgiapp.py,sha256=gVBgUc_3uSK0QzXYQ1XbutacEGjf44CgxAaYkgwfucY,1924
gunicorn/arbiter.py,sha256=kLHC8nqyXcjijSQhbO19Unu9KsElcrpR2c9mPkN4Has,35774
gunicorn/asgi/__init__.py,sha256=hokd03Cc-qUDW9NB2TthfXrk-M31xofADPLoTpqobtE,698
gunicorn/asgi/__pycache__/__init__.cpython-311.pyc,,
gunicorn/asgi/__pycache__/lifespan.cpython-311.pyc,,
gunicorn/asgi/__pycache__/parser.cpython-311.pyc,,
gunicorn/asgi/__pycache__/protocol.cpython-311.pyc,,
gunicorn/asgi/__pycache__/unreader.cpython-311.pyc,,
gunicorn/asgi/__pycache__/uwsgi.cpython-311.pyc,,
gunicorn/asgi/__pycache__/websocket.cpython-311.pyc,,
gunicorn/asgi/lifespan.py,sha256=DWHTb5174YGvBwYFJYiOIBwJmpVMKJORJaNabjtuUvw,6275
gunicorn/asgi/parser.py,sha256=Au48KGG-CML_cDpFw0I9zTC0nBk86WQ3xerNzSbyOV8,35403
gunicorn/asgi/protocol.py,sha256=FsHPhAy_5qF-EdXaqPscbBg-MnxddQ6-DxPPZI-XB9M,80571
gunicorn/asgi/unreader.py,sha256=PUCT6dgPVEgRTKm14Lxp_eOgCFJt8IVNmyCgjKuV558,4121
gunicorn/asgi/uwsgi.py,sha256=Sro0z_fCXZ7EuC4UcI2rvKGQ_0EEsLNpjIRYXOT_XQ4,5523
gunicorn/asgi/websocket.py,sha256=cOTEAIf7ylL-unU5zE9i1-e83vaUmjo91StsTZwWZkg,14674
gunicorn/config.py,sha256=1mZymYKtyApiiWLore0bq5KdnbPRTuAMYpmUi5W2ll0,99247
gunicorn/ctl/__init__.py,sha256=Z2lOTPMyTjTf9_sZ6PF3Hvqhv7Ye838vlp6_-pQuDxk,496
gunicorn/ctl/__pycache__/__init__.cpython-311.pyc,,
gunicorn/ctl/__pycache__/cli.cpython-311.pyc,,
gunicorn/ctl/__pycache__/client.cpython-311.pyc,,
gunicorn/ctl/__pycache__/handlers.cpython-311.pyc,,
gunicorn/ctl/__pycache__/protocol.cpython-311.pyc,,
gunicorn/ctl/__pycache__/server.cpython-311.pyc,,
gunicorn/ctl/cli.py,sha256=W9u6IleBNaZLCZaM8F7FeOz5RlqHDUNMAuSnRTAsl04,13202
gunicorn/ctl/client.py,sha256=MjCSa-IMCezg9r2xvjcgAf5M6RVOB_69ZNOnWyO6zJg,3478
gunicorn/ctl/handlers.py,sha256=91wvhsYKh1YnJAZgHfJ3o6aH5Ir8A1KmHGwGtjrRx8c,18207
gunicorn/ctl/protocol.py,sha256=aKRk1c8blWJ3lxrt1FzCd2CfwwprZwG-wFK0kz17IiI,5705
gunicorn/ctl/server.py,sha256=Em_4-rEpsp6794NK6fnLvmv__2SXvXoMgegT7oNIjcg,13827
gunicorn/debug.py,sha256=3xY9r1PioItYtRsZkcpVvNfp21o_GQGTBqGb5oNzAJI,2312
gunicorn/dirty/__init__.py,sha256=6c6MGPYQIEkAqhIpaf_TNcoImHVO5e4t2yuD3qskoUA,2017
gunicorn/dirty/__pycache__/__init__.cpython-311.pyc,,
gunicorn/dirty/__pycache__/app.cpython-311.pyc,,
gunicorn/dirty/__pycache__/arbiter.cpython-311.pyc,,
gunicorn/dirty/__pycache__/client.cpython-311.pyc,,
gunicorn/dirty/__pycache__/errors.cpython-311.pyc,,
gunicorn/dirty/__pycache__/protocol.cpython-311.pyc,,
gunicorn/dirty/__pycache__/stash.cpython-311.pyc,,
gunicorn/dirty/__pycache__/tlv.cpython-311.pyc,,
gunicorn/dirty/__pycache__/worker.cpython-311.pyc,,
gunicorn/dirty/app.py,sha256=gst70jJ5cdzDa3xoCF-gu1xEwjcSS7exkzMTrzj1WLQ,10716
gunicorn/dirty/arbiter.py,sha256=zUwOx7Kmf70c45gRx5TqIvM9r2RU_U5Yak-2eK_jF74,41857
gunicorn/dirty/client.py,sha256=vy6H-DjTy_8lFGBAoD31aWCjmBnlvXqL4fGCozXTqEo,24300
gunicorn/dirty/errors.py,sha256=LCHOra5SvVCMxLHDIBmlaoslSzAH_HwYZXSqUPpReEI,6401
gunicorn/dirty/protocol.py,sha256=y4jVVKIvEz5d10SQwTRb577UVG3fM4k9DNsltJPQKiI,24862
gunicorn/dirty/stash.py,sha256=xHepgEQcgxtT56VtftXWEL6lA5MA9Q4FKrtwdG5ulnE,13582
gunicorn/dirty/tlv.py,sha256=P6z8O8IJEYy-5t2yZSCwEheaQ5ZIsDV1K8tiggS6fxs,10428
gunicorn/dirty/worker.py,sha256=0orR-054bfZiUbd6Wu9DYu8eiSrl6riG7Cg9Y0DcPoU,17476
gunicorn/errors.py,sha256=iLTJQC4SVSRoygIGGHXvEp0d8UdzpeqmMRqUcF0JI14,897
gunicorn/glogging.py,sha256=neVMim0D6hg5LkXAdTHjFH-bYSj-q_R45uiOJ8ji_jQ,16069
gunicorn/http/__init__.py,sha256=dgv0hNXC4hTwAfXmoJHO5wWVggcGiwEtteFMnlCS7k8,1162
gunicorn/http/__pycache__/__init__.cpython-311.pyc,,
gunicorn/http/__pycache__/body.cpython-311.pyc,,
gunicorn/http/__pycache__/errors.cpython-311.pyc,,
gunicorn/http/__pycache__/message.cpython-311.pyc,,
gunicorn/http/__pycache__/parser.cpython-311.pyc,,
gunicorn/http/__pycache__/unreader.cpython-311.pyc,,
gunicorn/http/__pycache__/wsgi.cpython-311.pyc,,
gunicorn/http/body.py,sha256=PfQWGNsO0QPzI7TLvi5chB8zkUhQvn_5YANY-B3rGgQ,8056
gunicorn/http/errors.py,sha256=1AJVK6noxsSxhSbnRdll-3MGd_lWFfkgt4b6YNq-sj4,4338
gunicorn/http/message.py,sha256=ugmKT_dWsYcBtVV1HPybrx4ZTaQCTzuoqx9aimXy6G4,36178
gunicorn/http/parser.py,sha256=vTmcW4TZYJ5QwylzcyFxjReL61nirKVnK68_GiTi2eY,4274
gunicorn/http/unreader.py,sha256=lO_PB6MqPhxebws1pnW9KTws6oMvtfSWsbFaj-WV2L4,2431
gunicorn/http/wsgi.py,sha256=qTblFXm-bSqji8ClAHyPkx0YiPlNoPrvEXxD1FyS_4k,18716
gunicorn/http2/__init__.py,sha256=4cxrWfVejZONOaw_j3TNn5EZpnGyHG_MrLWCe1I8X7c,2228
gunicorn/http2/__pycache__/__init__.cpython-311.pyc,,
gunicorn/http2/__pycache__/async_connection.cpython-311.pyc,,
gunicorn/http2/__pycache__/connection.cpython-311.pyc,,
gunicorn/http2/__pycache__/errors.cpython-311.pyc,,
gunicorn/http2/__pycache__/negotiation.cpython-311.pyc,,
gunicorn/http2/__pycache__/request.cpython-311.pyc,,
gunicorn/http2/__pycache__/response.cpython-311.pyc,,
gunicorn/http2/__pycache__/stream.cpython-311.pyc,,
gunicorn/http2/async_connection.py,sha256=Sm7-0fc_cvi2XxKfAikdHFdVX4zYoiu-DJLBGTT605Y,23953
gunicorn/http2/connection.py,sha256=DI911hCTK9d2riilsVgTRrpaRNm_BpLiSgUmZjpIue0,27467
gunicorn/http2/errors.py,sha256=Z5SGnGjabPRcj8DJonTo_oA10At-D3bieKb8TVwnakI,3825
gunicorn/http2/negotiation.py,sha256=I4ITHtR9XltbjEvVmUT5NzvKose68sKpBjIP61uz-KY,5867
gunicorn/http2/request.py,sha256=akD72ug2c7ulcRn54_OgbR7d2BfgcAGAfZsVOWYpgfg,8094
gunicorn/http2/response.py,sha256=yYB3KVrVJM-5HykzIWCBkCnnCZNx797YijiK6RQtB08,2125
gunicorn/http2/stream.py,sha256=Za-8VrkiqbGvl2OYEByETIwwvhkVDUPg9z5CxDwqJYU,10993
gunicorn/instrument/__init__.py,sha256=8m9lIbhRssnbGuBeQUA-vNSNbMeNju9Q_PUnnNfqOYU,105
gunicorn/instrument/__pycache__/__init__.cpython-311.pyc,,
gunicorn/instrument/__pycache__/statsd.cpython-311.pyc,,
gunicorn/instrument/statsd.py,sha256=uRPlFOKD9MxqzYwMIOgNkwgEplVj4g7nxLt7J3NcF8g,4981
gunicorn/pidfile.py,sha256=SMExJy68s9ZlynsbCzqA38vRjsLQkIg967t6KSLPXTQ,2381
gunicorn/reloader.py,sha256=I-95NDdbW28RYsq-_ii3abw4Br7SBORbf9kQoXetKJY,4250
gunicorn/sock.py,sha256=QVUM6dB81Yx1AGv16Tn1DBxG2K1lG9HXbi8CxZFvY6w,9295
gunicorn/systemd.py,sha256=S7i5tsZbyq4NjlpaVD-aEnxl6lJk7lK-wWQ348JjG44,2547
gunicorn/util.py,sha256=ZejUgBU2pht-EGkWMsP3h72zKLkwmYreERW4SqVJaXA,20824
gunicorn/uwsgi/__init__.py,sha256=ExWw2tRgxiVPiV7iHw1PngVegxhNHGJDFs6GvdJCr74,502
gunicorn/uwsgi/__pycache__/__init__.cpython-311.pyc,,
gunicorn/uwsgi/__pycache__/errors.cpython-311.pyc,,
gunicorn/uwsgi/__pycache__/message.cpython-311.pyc,,
gunicorn/uwsgi/__pycache__/parser.cpython-311.pyc,,
gunicorn/uwsgi/errors.py,sha256=6u_qwzZLBQADUpmT-RuTnqjZ11PxBnpNzGAmzgnQrK4,1318
gunicorn/uwsgi/message.py,sha256=cKXKEpJ2PzcN9NPPi9Z7QhlgBwFFYCbmA0ZGzcjDnbs,8189
gunicorn/uwsgi/parser.py,sha256=VQ7_omgPWo5YifLbDLlZAi4hWXUjVhxYdEWBf0nOB1k,300
gunicorn/workers/__init__.py,sha256=yWJ2K0YwSJ-4bPFKaCpAa-7JuJ0kKsRdRZ5gfVkuqWk,560
gunicorn/workers/__pycache__/__init__.cpython-311.pyc,,
gunicorn/workers/__pycache__/base.cpython-311.pyc,,
gunicorn/workers/__pycache__/base_async.cpython-311.pyc,,
gunicorn/workers/__pycache__/gasgi.cpython-311.pyc,,
gunicorn/workers/__pycache__/ggevent.cpython-311.pyc,,
gunicorn/workers/__pycache__/gthread.cpython-311.pyc,,
gunicorn/workers/__pycache__/gtornado.cpython-311.pyc,,
gunicorn/workers/__pycache__/sync.cpython-311.pyc,,
gunicorn/workers/__pycache__/workertmp.cpython-311.pyc,,
gunicorn/workers/base.py,sha256=XRRzvdXQYNCLUmtknR11Umi-eIR12kZfH2RG-uej1gg,10033
gunicorn/workers/base_async.py,sha256=gGDQQ6vtZF9kwyWU-GfPMQN5arPIy3IVH2L-UX8HEqA,13440
gunicorn/workers/gasgi.py,sha256=qTXzhSVeVFA75ZRVIwzSLC-qZfLEERuMOUYkX5w-RIA,10697
gunicorn/workers/ggevent.py,sha256=zYfqPp7J6hXkUDtRBFZCvVGWKloD7onATr6l_94OfXY,5885
gunicorn/workers/gthread.py,sha256=4TvhmbeGPu_UGaaLfAeS4n88Z1U4u844OfGeh-M3VWs,28518
gunicorn/workers/gtornado.py,sha256=51PHg16BQHFRp4BamKQ--KPlWhNbW-uYrlNv6bd41ZE,3905
gunicorn/workers/sync.py,sha256=w3m_XmijK9kZY2YelyE-8SJ9-s7veFUbVawFCUZmhIE,7421
gunicorn/workers/workertmp.py,sha256=bswGosCIDb_wBfdGaFqHopgxbmJ6rgVXYlVhJDWZKIc,1604
@@ -0,0 +1,5 @@
Wheel-Version: 1.0
Generator: setuptools (84.0.0)
Root-Is-Purelib: true
Tag: py3-none-any
@@ -0,0 +1,6 @@
[console_scripts]
gunicorn = gunicorn.app.wsgiapp:run
gunicornc = gunicorn.ctl.cli:main
[paste.server_runner]
main = gunicorn.app.pasterapp:serve
@@ -0,0 +1,23 @@
2009-2026 (c) Benoît Chesneau <[email protected]>
2009-2015 (c) Paul J. Davis <[email protected]>
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.
@@ -0,0 +1 @@
gunicorn