Website built from v0.21.0

This commit is contained in:
Sergey Shepelev 2017-04-06 01:32:58 +03:00
parent 7a7a4ebb8b
commit 0381af403f
38 changed files with 426 additions and 302 deletions

View File

@ -1,3 +1,24 @@
0.21.0
======
* New timeout error API: .is_timeout=True on exception object
It's now easy to test if network error is transient and retry is appropriate.
Please spread the word and invite other libraries to support this interface.
* hubs: use monotonic clock by default (bundled package); Thanks to Roman Podoliaka and Victor Stinner
* dns: EVENTLET_NO_GREENDNS option is back, green is still default
* dns: hosts file was consulted after nameservers
* ssl: RecursionError on Python3.6+; Thanks to justdoit0823@github and Gevent developers
* wsgi: log_output=False was not disabling startup and accepted messages
* greenio: Fixed OSError: [WinError 10038] Socket operation on nonsocket
* dns: EAI_NODATA was removed from RFC3493 and FreeBSD
* green.select: fix mark_as_closed() wrong number of args
* green.zmq: socket.{recv,send}_* signatures did not match recent upstream pyzmq
* New feature: Add zipkin tracing to eventlet
* db_pool: proxy Connection.set_isolation_level()
* green.zmq: support RCVTIMEO (receive timeout)
* green.profile: Python3 compatibility; Thanks to Artur Stawiarski
* support: upgrade bundled six to 1.10 (dbfbfc818e3d)
* python3.6: http.client.request support chunked_encoding
0.20.1
======
* dns: try unqualified queries as top level

View File

@ -30,14 +30,24 @@ PyOpenSSL
:mod:`eventlet.green.OpenSSL` has exactly the same interface as pyOpenSSL_ `(docs) <http://pyopenssl.sourceforge.net/pyOpenSSL.html/>`_, and works in all versions of Python. This module is much more powerful than :func:`socket.ssl`, and may have some advantages over :mod:`ssl`, depending on your needs.
Here's an example of a server::
For testing purpose first create self-signed certificate using following commands ::
$ openssl genrsa 1024 > server.key
$ openssl req -new -x509 -nodes -sha1 -days 365 -key server.key > server.cert
Keep these Private key and Self-signed certificate in same directory as `server.py` and `client.py` for simplicity sake.
Here's an example of a server (`server.py`) ::
from eventlet.green import socket
from eventlet.green.OpenSSL import SSL
# insecure context, only for example purposes
context = SSL.Context(SSL.SSLv23_METHOD)
context.set_verify(SSL.VERIFY_NONE, lambda *x: True))
# Pass server's private key created
context.use_privatekey_file('server.key')
# Pass self-signed certificate created
context.use_certificate_file('server.cert')
# create underlying green socket and wrap it in ssl
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
@ -45,7 +55,7 @@ Here's an example of a server::
# configure as server
connection.set_accept_state()
connection.bind(('127.0.0.1', 80443))
connection.bind(('127.0.0.1', 8443))
connection.listen(50)
# accept one client connection then close up shop
@ -55,4 +65,28 @@ Here's an example of a server::
client_conn.close()
connection.close()
Here's an example of a client (`client.py`) ::
import socket
# Create socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Connect to server
s.connect(('127.0.0.1', 8443))
sslSocket = socket.ssl(s)
print repr(sslSocket.server())
print repr(sslSocket.issuer())
sslSocket.write('Hello secure socket\n')
# Close client
s.close()
Running example::
In first terminal
$ python server.py
In another terminal
$ python client.py
.. _pyOpenSSL: https://launchpad.net/pyopenssl

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Authors &#8212; Eventlet 0.20.1 documentation</title>
<title>Authors &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="modules/zmq.html" title="eventlet.green.zmq ØMQ support"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>
@ -207,6 +207,14 @@
<li>Whitney Young</li>
<li>Matthew D. Pagel</li>
<li>Matt Yule-Bennett</li>
<li>Artur Stawiarski</li>
<li>Tal Wrii</li>
<li>Roman Podoliaka</li>
<li>Gevorg Davoian</li>
<li>Ondřej Kobližek</li>
<li>Yuichi Bando</li>
<li>Feng</li>
<li>Aayush Kasurde</li>
</ul>
</div>
</div>
@ -271,7 +279,7 @@
<li class="right" >
<a href="modules/zmq.html" title="eventlet.green.zmq ØMQ support"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Basic Usage &#8212; Eventlet 0.20.1 documentation</title>
<title>Basic Usage &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="index.html" title="Eventlet Documentation"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>
@ -302,7 +302,7 @@ connections until the existing ones complete.</p>
<li class="right" >
<a href="index.html" title="Eventlet Documentation"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>0.20.1 &#8212; Eventlet 0.20.1 documentation</title>
<title>0.21.0 &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -37,7 +37,7 @@
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>
@ -47,7 +47,30 @@
<div class="body" role="main">
<div class="section" id="id1">
<h1>0.20.1<a class="headerlink" href="#id1" title="Permalink to this headline"></a></h1>
<h1>0.21.0<a class="headerlink" href="#id1" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>New timeout error API: .is_timeout=True on exception object
It&#8217;s now easy to test if network error is transient and retry is appropriate.
Please spread the word and invite other libraries to support this interface.</li>
<li>hubs: use monotonic clock by default (bundled package); Thanks to Roman Podoliaka and Victor Stinner</li>
<li>dns: EVENTLET_NO_GREENDNS option is back, green is still default</li>
<li>dns: hosts file was consulted after nameservers</li>
<li>ssl: RecursionError on Python3.6+; Thanks to <a class="reference external" href="mailto:justdoit0823&#37;&#52;&#48;github">justdoit0823<span>&#64;</span>github</a> and Gevent developers</li>
<li>wsgi: log_output=False was not disabling startup and accepted messages</li>
<li>greenio: Fixed OSError: [WinError 10038] Socket operation on nonsocket</li>
<li>dns: EAI_NODATA was removed from RFC3493 and FreeBSD</li>
<li>green.select: fix mark_as_closed() wrong number of args</li>
<li>green.zmq: socket.{recv,send}_* signatures did not match recent upstream pyzmq</li>
<li>New feature: Add zipkin tracing to eventlet</li>
<li>db_pool: proxy Connection.set_isolation_level()</li>
<li>green.zmq: support RCVTIMEO (receive timeout)</li>
<li>green.profile: Python3 compatibility; Thanks to Artur Stawiarski</li>
<li>support: upgrade bundled six to 1.10 (dbfbfc818e3d)</li>
<li>python3.6: http.client.request support chunked_encoding</li>
</ul>
</div>
<div class="section" id="id2">
<h1>0.20.1<a class="headerlink" href="#id2" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>dns: try unqualified queries as top level</li>
<li>test_import_patched_defaults bended to play with pyopenssl&gt;=16.1.0</li>
@ -55,8 +78,8 @@
<li>Type check Semaphore, GreenPool arguments; Thanks to Matthew D. Pagel</li>
</ul>
</div>
<div class="section" id="id2">
<h1>0.20.0<a class="headerlink" href="#id2" title="Permalink to this headline"></a></h1>
<div class="section" id="id3">
<h1>0.20.0<a class="headerlink" href="#id3" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>IMPORTANT: removed select.poll() function</li>
<li>DNS resolving is always green with dnspython bundled in</li>
@ -78,8 +101,8 @@
<li>websocket: support Gunicorn environ[&#8216;gunicorn.socket&#8217;]</li>
</ul>
</div>
<div class="section" id="id3">
<h1>0.19.0<a class="headerlink" href="#id3" title="Permalink to this headline"></a></h1>
<div class="section" id="id4">
<h1>0.19.0<a class="headerlink" href="#id4" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>ssl: IMPORTANT DoS FIX do_handshake_connect=False in server accept(); Thanks to Garth Mollett</li>
<li>patcher: patch existing threading locks; Thanks to Alexis Lee</li>
@ -90,36 +113,36 @@
<li>Minor grammatical improvements and typo fixes to the docs; Thanks to Steven Erenst</li>
</ul>
</div>
<div class="section" id="id4">
<h1>0.18.4<a class="headerlink" href="#id4" title="Permalink to this headline"></a></h1>
<div class="section" id="id5">
<h1>0.18.4<a class="headerlink" href="#id5" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>wsgi: change TCP_NODELAY to TCP_QUICKACK, ignore socket error when not available</li>
</ul>
</div>
<div class="section" id="id5">
<h1>0.18.3<a class="headerlink" href="#id5" title="Permalink to this headline"></a></h1>
<div class="section" id="id6">
<h1>0.18.3<a class="headerlink" href="#id6" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>wsgi: Use buffered writes - fixes partial socket.send without custom
writelines(); Github issue #295</li>
<li>wsgi: TCP_NODELAY enabled by default</li>
</ul>
</div>
<div class="section" id="id6">
<h1>0.18.2<a class="headerlink" href="#id6" title="Permalink to this headline"></a></h1>
<div class="section" id="id7">
<h1>0.18.2<a class="headerlink" href="#id7" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>wsgi: Fix data loss on partial writes (socket.send); Thanks to Jakub Stasiak</li>
</ul>
</div>
<div class="section" id="id7">
<h1>0.18.1<a class="headerlink" href="#id7" title="Permalink to this headline"></a></h1>
<div class="section" id="id8">
<h1>0.18.1<a class="headerlink" href="#id8" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>IMPORTANT: do not use Eventlet 0.18.0 and 0.18.1</li>
<li>patcher: Fix AttributeError in subprocess communicate()</li>
<li>greenio: Fix &#8220;TypeError: an integer is required&#8221; in sendto()</li>
</ul>
</div>
<div class="section" id="id8">
<h1>0.18.0<a class="headerlink" href="#id8" title="Permalink to this headline"></a></h1>
<div class="section" id="id9">
<h1>0.18.0<a class="headerlink" href="#id9" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>IMPORTANT: do not use Eventlet 0.18.0 and 0.18.1</li>
<li>greenio: Fixed a bug that could cause send() to start an endless loop on
@ -181,21 +204,21 @@ errors</p>
</li>
</ul>
</div>
<div class="section" id="id9">
<h1>0.17.4<a class="headerlink" href="#id9" title="Permalink to this headline"></a></h1>
<div class="section" id="id10">
<h1>0.17.4<a class="headerlink" href="#id10" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>ssl: incorrect initalization of default context; Thanks to stuart-mclaren</li>
</ul>
</div>
<div class="section" id="id10">
<h1>0.17.3<a class="headerlink" href="#id10" title="Permalink to this headline"></a></h1>
<div class="section" id="id11">
<h1>0.17.3<a class="headerlink" href="#id11" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>green.thread: Python3.3+ fixes; Thanks to Victor Stinner</li>
<li>Semaphore.acquire() accepts timeout=-1; Thanks to Victor Stinner</li>
</ul>
</div>
<div class="section" id="id11">
<h1>0.17.2<a class="headerlink" href="#id11" title="Permalink to this headline"></a></h1>
<div class="section" id="id12">
<h1>0.17.2<a class="headerlink" href="#id12" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>wsgi: Provide python logging compatibility; Thanks to Sean Dague</li>
<li>greendns: fix premature connection closing in DNS proxy; Thanks to Tim Simmons</li>
@ -204,14 +227,14 @@ errors</p>
<li>setup: tests.{isolated,manual} polluted top-level packages</li>
</ul>
</div>
<div class="section" id="id12">
<h1>0.17.1<a class="headerlink" href="#id12" title="Permalink to this headline"></a></h1>
<div class="section" id="id13">
<h1>0.17.1<a class="headerlink" href="#id13" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>greendns: fix dns.name import and Python3 compatibility</li>
</ul>
</div>
<div class="section" id="id13">
<h1>0.17<a class="headerlink" href="#id13" title="Permalink to this headline"></a></h1>
<div class="section" id="id14">
<h1>0.17<a class="headerlink" href="#id14" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>Full Python3 compatibility; Thanks to Jakub Stasiak</li>
<li>greendns: IPv6 support, improved handling of /etc/hosts; Thanks to Floris Bruynooghe</li>
@ -222,14 +245,14 @@ errors</p>
<li>greenio: shutdown already closed sockets without error; Thanks to David Szotten</li>
</ul>
</div>
<div class="section" id="id14">
<h1>0.16.1<a class="headerlink" href="#id14" title="Permalink to this headline"></a></h1>
<div class="section" id="id15">
<h1>0.16.1<a class="headerlink" href="#id15" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>Wheel build 0.16.0 incorrectly shipped removed module eventlet.util.</li>
</ul>
</div>
<div class="section" id="id15">
<h1>0.16.0<a class="headerlink" href="#id15" title="Permalink to this headline"></a></h1>
<div class="section" id="id16">
<h1>0.16.0<a class="headerlink" href="#id16" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>Fix SSL socket wrapping and Python 2.7.9 compatibility; Thanks to Jakub Stasiak</li>
<li>Fix monkey_patch() on Python 3; Thanks to Victor Stinner</li>
@ -245,22 +268,22 @@ errors</p>
<li>tests: Fix timers not cleaned up on MySQL test skips; Thanks to Corey Wright</li>
</ul>
</div>
<div class="section" id="id16">
<h1>0.15.2<a class="headerlink" href="#id16" title="Permalink to this headline"></a></h1>
<div class="section" id="id17">
<h1>0.15.2<a class="headerlink" href="#id17" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>greenio: fixed memory leak, introduced in 0.15.1; Thanks to Michael Kerrin, Tushar Gohad</li>
<li>wsgi: Support optional headers w/ &#8220;100 Continue&#8221; responses; Thanks to Tushar Gohad</li>
</ul>
</div>
<div class="section" id="id17">
<h1>0.15.1<a class="headerlink" href="#id17" title="Permalink to this headline"></a></h1>
<div class="section" id="id18">
<h1>0.15.1<a class="headerlink" href="#id18" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>greenio: Fix second simultaneous read (parallel paramiko issue); Thanks to Jan Grant, Michael Kerrin</li>
<li>db_pool: customizable connection cleanup function; Thanks to Avery Fay</li>
</ul>
</div>
<div class="section" id="id18">
<h1>0.15<a class="headerlink" href="#id18" title="Permalink to this headline"></a></h1>
<div class="section" id="id19">
<h1>0.15<a class="headerlink" href="#id19" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>Python3 compatibility &#8211; <strong>not ready yet</strong>; Thanks to Astrum Kuo, Davanum Srinivas, Jakub Stasiak, Victor Sergeyev</li>
<li>coros: remove Actor which was deprecated in 2010-01</li>
@ -275,8 +298,8 @@ errors</p>
<li>wsgi: capitalize_response_headers option</li>
</ul>
</div>
<div class="section" id="id19">
<h1>0.14<a class="headerlink" href="#id19" title="Permalink to this headline"></a></h1>
<div class="section" id="id20">
<h1>0.14<a class="headerlink" href="#id20" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>wsgi: handle connection socket timeouts; Thanks to Paul Oppenheim</li>
<li>wsgi: close timed out client connections</li>
@ -288,8 +311,8 @@ errors</p>
<li>wsgi: configurable socket_timeout</li>
</ul>
</div>
<div class="section" id="id20">
<h1>0.13<a class="headerlink" href="#id20" title="Permalink to this headline"></a></h1>
<div class="section" id="id21">
<h1>0.13<a class="headerlink" href="#id21" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>hubs: kqueue support! Thanks to YAMAMOTO Takashi, Edward George</li>
<li>greenio: Fix AttributeError on MacOSX; Bitbucket #136; Thanks to Derk Tegeler</li>
@ -306,8 +329,8 @@ errors</p>
<li>doc: hubs: Point to the correct function in exception message; Thanks to Floris Bruynooghe</li>
</ul>
</div>
<div class="section" id="id21">
<h1>0.12<a class="headerlink" href="#id21" title="Permalink to this headline"></a></h1>
<div class="section" id="id22">
<h1>0.12<a class="headerlink" href="#id22" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>zmq: Fix 100% busy CPU in idle after .bind(PUB) (thanks to Geoff Salmon)</li>
<li>greenio: Fix socket.settimeout() did not switch back to blocking mode (thanks to Peter Skirko)</li>
@ -317,16 +340,16 @@ errors</p>
<li>tests: Support libzmq 3.0 SNDHWM option (thanks to Geoff Salmon)</li>
</ul>
</div>
<div class="section" id="id22">
<h1>0.11<a class="headerlink" href="#id22" title="Permalink to this headline"></a></h1>
<div class="section" id="id23">
<h1>0.11<a class="headerlink" href="#id23" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>ssl: Fix 100% busy CPU in socket.sendall() (thanks to Raymon Lu)</li>
<li>zmq: Return linger argument to Socket.close() (thanks to Eric Windisch)</li>
<li>tests: SSL tests were always skipped due to bug in skip_if_no_ssl decorator</li>
</ul>
</div>
<div class="section" id="id23">
<h1>0.10<a class="headerlink" href="#id23" title="Permalink to this headline"></a></h1>
<div class="section" id="id24">
<h1>0.10<a class="headerlink" href="#id24" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>greenio: Fix relative seek() (thanks to AlanP)</li>
<li>db_pool: Fix pool.put() TypeError with min_size &gt; 1 (thanks to Jessica Qi)</li>
@ -344,8 +367,8 @@ errors</p>
<li>greenio: Remove deprecated GreenPipe.xreadlines() method, was broken anyway</li>
</ul>
</div>
<div class="section" id="id24">
<h1>0.9.17<a class="headerlink" href="#id24" title="Permalink to this headline"></a></h1>
<div class="section" id="id25">
<h1>0.9.17<a class="headerlink" href="#id25" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>ZeroMQ support calling send and recv from multiple greenthreads (thanks to Geoff Salmon)</li>
<li>SSL: unwrap() sends data, and so it needs trampolining (#104 thanks to Brandon Rhodes)</li>
@ -361,14 +384,14 @@ errors</p>
<li>wsgi: Configurable maximum URL length (thanks to Tomas Sedovic)</li>
</ul>
</div>
<div class="section" id="id25">
<h1>0.9.16<a class="headerlink" href="#id25" title="Permalink to this headline"></a></h1>
<div class="section" id="id26">
<h1>0.9.16<a class="headerlink" href="#id26" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>SO_REUSEADDR now correctly set.</li>
</ul>
</div>
<div class="section" id="id26">
<h1>0.9.15<a class="headerlink" href="#id26" title="Permalink to this headline"></a></h1>
<div class="section" id="id27">
<h1>0.9.15<a class="headerlink" href="#id27" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>ZeroMQ support without an explicit hub now implemented! Thanks to Zed Shaw for the patch.</li>
<li>zmq module supports the NOBLOCK flag, thanks to rfk. (#76)</li>
@ -380,8 +403,8 @@ errors</p>
<li>Timeouts raised within tpool.execute are propagated back to the caller (thanks again to redbo for being the squeaky wheel)</li>
</ul>
</div>
<div class="section" id="id27">
<h1>0.9.14<a class="headerlink" href="#id27" title="Permalink to this headline"></a></h1>
<div class="section" id="id28">
<h1>0.9.14<a class="headerlink" href="#id28" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>Many fixes to the ZeroMQ hub, which now requires version 2.0.10 or later. Thanks to Ben Ford.</li>
<li>ZeroMQ hub no longer depends on pollhub, and thus works on Windows (thanks, Alexey Borzenkov)</li>
@ -395,8 +418,8 @@ errors</p>
<li>Documentation for eventlet.green.zmq, courtesy of Ben Ford</li>
</ul>
</div>
<div class="section" id="id28">
<h1>0.9.13<a class="headerlink" href="#id28" title="Permalink to this headline"></a></h1>
<div class="section" id="id29">
<h1>0.9.13<a class="headerlink" href="#id29" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>ZeroMQ hub, and eventlet.green.zmq make supersockets green. Thanks to Ben Ford!</li>
<li>eventlet.green.MySQLdb added. It&#8217;s an interface to MySQLdb that uses tpool to make it appear nonblocking</li>
@ -415,8 +438,8 @@ errors</p>
<li>Removed _main_wrapper from greenthread, thanks to Ambroff adding keyword arguments to switch() in 0.3!</li>
</ul>
</div>
<div class="section" id="id29">
<h1>0.9.12<a class="headerlink" href="#id29" title="Permalink to this headline"></a></h1>
<div class="section" id="id30">
<h1>0.9.12<a class="headerlink" href="#id30" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>Eventlet no longer uses the Twisted hub if Twisted is imported &#8211; you must call eventlet.hubs.use_hub(&#8216;twistedr&#8217;) if you want to use it. This prevents strange race conditions for those who want to use both Twisted and Eventlet separately.</li>
<li>Removed circular import in twistedr.py</li>
@ -429,8 +452,8 @@ errors</p>
<li>Adding websocket.html to tarball so that you can run the examples without checking out the source</li>
</ul>
</div>
<div class="section" id="id30">
<h1>0.9.10<a class="headerlink" href="#id30" title="Permalink to this headline"></a></h1>
<div class="section" id="id31">
<h1>0.9.10<a class="headerlink" href="#id31" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>Greendns: if dnspython is installed, Eventlet will automatically use it to provide non-blocking DNS queries. Set the environment variable &#8216;EVENTLET_NO_GREENDNS&#8217; if you don&#8217;t want greendns but have dnspython installed.</li>
<li>Full test suite passes on Python 2.7.</li>
@ -443,16 +466,16 @@ errors</p>
<li>Tweaked Timeout class to do something sensible when True is passed to the constructor</li>
</ul>
</div>
<div class="section" id="id31">
<h1>0.9.9<a class="headerlink" href="#id31" title="Permalink to this headline"></a></h1>
<div class="section" id="id32">
<h1>0.9.9<a class="headerlink" href="#id32" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>A fix for monkeypatching on systems with psycopg version 2.0.14.</li>
<li>Improved support for chunked transfers in wsgi, plus a bunch of tests from schmir (ported from gevent by redbo)</li>
<li>A fix for the twisted hub from Favo Yang</li>
</ul>
</div>
<div class="section" id="id32">
<h1>0.9.8<a class="headerlink" href="#id32" title="Permalink to this headline"></a></h1>
<div class="section" id="id33">
<h1>0.9.8<a class="headerlink" href="#id33" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>Support for psycopg2&#8217;s asynchronous mode, from Daniele Varrazzo</li>
<li>websocket module is now part of core Eventlet with 100% unit test coverage thanks to Ben Ford. See its documentation at <a class="reference external" href="http://eventlet.net/doc/modules/websocket.html">http://eventlet.net/doc/modules/websocket.html</a></li>
@ -464,8 +487,8 @@ errors</p>
<li>Many bug fixes, major and minor.</li>
</ul>
</div>
<div class="section" id="id33">
<h1>0.9.7<a class="headerlink" href="#id33" title="Permalink to this headline"></a></h1>
<div class="section" id="id34">
<h1>0.9.7<a class="headerlink" href="#id34" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>GreenPipe is now a context manager (thanks, quad)</li>
<li>tpool.Proxy supports iterators properly</li>
@ -475,8 +498,8 @@ errors</p>
<li>multitudinous improvements in Py3k compatibility from amajorek</li>
</ul>
</div>
<div class="section" id="id34">
<h1>0.9.6<a class="headerlink" href="#id34" title="Permalink to this headline"></a></h1>
<div class="section" id="id35">
<h1>0.9.6<a class="headerlink" href="#id35" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>new EVENTLET_HUB environment variable allows you to select a hub without code</li>
<li>improved GreenSocket and GreenPipe compatibility with stdlib</li>
@ -495,8 +518,8 @@ errors</p>
<li>new eventlet.serve convenience function for easy TCP servers</li>
</ul>
</div>
<div class="section" id="id35">
<h1>0.9.5<a class="headerlink" href="#id35" title="Permalink to this headline"></a></h1>
<div class="section" id="id36">
<h1>0.9.5<a class="headerlink" href="#id36" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>support psycopg in db_pool</li>
<li>smart patcher that does the right patching when importing without needing to understand plumbing of patched module</li>
@ -519,8 +542,8 @@ errors</p>
<li>new convenience functions: eventlet.connect and eventlet.listen. Thanks, Sergey!</li>
</ul>
</div>
<div class="section" id="id36">
<h1>0.9.4<a class="headerlink" href="#id36" title="Permalink to this headline"></a></h1>
<div class="section" id="id37">
<h1>0.9.4<a class="headerlink" href="#id37" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>Deprecated coros.Queue and coros.Channel (use queue.Queue instead)</li>
<li>Added putting and getting methods to queue.Queue.</li>
@ -529,8 +552,8 @@ errors</p>
<li>Bugfixes in wsgi, greenpool</li>
</ul>
</div>
<div class="section" id="id37">
<h1>0.9.3<a class="headerlink" href="#id37" title="Permalink to this headline"></a></h1>
<div class="section" id="id38">
<h1>0.9.3<a class="headerlink" href="#id38" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>Moved primary api module to __init__ from api. It shouldn&#8217;t be necessary to import eventlet.api anymore; import eventlet should do the same job.</li>
<li>Proc module deprecated in favor of greenthread</li>
@ -556,16 +579,16 @@ errors</p>
<li>Removed saranwrap as an option for making db connections nonblocking in db_pool.</li>
</ul>
</div>
<div class="section" id="id38">
<h1>0.9.2<a class="headerlink" href="#id38" title="Permalink to this headline"></a></h1>
<div class="section" id="id39">
<h1>0.9.2<a class="headerlink" href="#id39" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>Bugfix for wsgi.py where it was improperly expecting the environ variable to be a constant when passed to the application.</li>
<li>Tpool.py now passes its tests on Windows.</li>
<li>Fixed minor performance issue in wsgi.</li>
</ul>
</div>
<div class="section" id="id39">
<h1>0.9.1<a class="headerlink" href="#id39" title="Permalink to this headline"></a></h1>
<div class="section" id="id40">
<h1>0.9.1<a class="headerlink" href="#id40" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>PyOpenSSL is no longer required for Python 2.6: use the eventlet.green.ssl module. 2.5 and 2.4 still require PyOpenSSL.</li>
<li>Cleaned up the eventlet.green packages and their associated tests, this should result in fewer version-dependent bugs with these modules.</li>
@ -584,8 +607,8 @@ errors</p>
<li>Bug fixes in: wsgi.py, twistedr.py, poll.py, greenio.py, util.py, select.py, processes.py, selects.py</li>
</ul>
</div>
<div class="section" id="id40">
<h1>0.9.0<a class="headerlink" href="#id40" title="Permalink to this headline"></a></h1>
<div class="section" id="id41">
<h1>0.9.0<a class="headerlink" href="#id41" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>Full-duplex sockets (simultaneous readers and writers in the same process).</li>
<li><dl class="first docutils">
@ -599,23 +622,23 @@ errors</p>
<li>Added eventlet.patcher which can be used to import &#8220;greened&#8221; modules.</li>
</ul>
</div>
<div class="section" id="id41">
<h1>0.8.16<a class="headerlink" href="#id41" title="Permalink to this headline"></a></h1>
<div class="section" id="id42">
<h1>0.8.16<a class="headerlink" href="#id42" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>GreenSSLObject properly masks ZeroReturnErrors with an empty read; with unit test.</li>
<li>Fixed 2.6 SSL compatibility issue.</li>
</ul>
</div>
<div class="section" id="id42">
<h1>0.8.15<a class="headerlink" href="#id42" title="Permalink to this headline"></a></h1>
<div class="section" id="id43">
<h1>0.8.15<a class="headerlink" href="#id43" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>GreenSSL object no longer converts ZeroReturnErrors into empty reads, because that is more compatible with the underlying SSLConnection object.</li>
<li>Fixed issue caused by SIGCHLD handler in processes.py</li>
<li>Stopped supporting string exceptions in saranwrap and fixed a few test failures.</li>
</ul>
</div>
<div class="section" id="id43">
<h1>0.8.14<a class="headerlink" href="#id43" title="Permalink to this headline"></a></h1>
<div class="section" id="id44">
<h1>0.8.14<a class="headerlink" href="#id44" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>Fixed some more Windows compatibility problems, resolving EVT-37 :</li>
</ul>
@ -623,15 +646,15 @@ errors</p>
* waiting() method on Pool class, which was lost when the Pool implementation
replaced CoroutinePool.</p>
</div>
<div class="section" id="id44">
<h1>0.8.13<a class="headerlink" href="#id44" title="Permalink to this headline"></a></h1>
<div class="section" id="id45">
<h1>0.8.13<a class="headerlink" href="#id45" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>2.6 SSL compatibility patch by Marcus Cavanaugh.</li>
<li>Added greenlet and pyopenssl as dependencies in setup.py.</li>
</ul>
</div>
<div class="section" id="id45">
<h1>0.8.12<a class="headerlink" href="#id45" title="Permalink to this headline"></a></h1>
<div class="section" id="id46">
<h1>0.8.12<a class="headerlink" href="#id46" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>The ability to resize() pools of coroutines, which was lost when the</li>
</ul>
@ -644,8 +667,8 @@ like SSL.Connection objects.
* A small patch that makes Eventlet work on Windows. This is the first
release of Eventlet that works on Windows.</p>
</div>
<div class="section" id="id46">
<h1>0.8.11<a class="headerlink" href="#id46" title="Permalink to this headline"></a></h1>
<div class="section" id="id47">
<h1>0.8.11<a class="headerlink" href="#id47" title="Permalink to this headline"></a></h1>
<p>Eventlet can now run on top of twisted reactor. Twisted-based hub is enabled automatically if
twisted.internet.reactor is imported. It is also possible to &#8220;embed&#8221; eventlet into a twisted
application via eventlet.twistedutil.join_reactor. See the examples for details.</p>
@ -699,24 +722,24 @@ Thanks to Marcus Cavanaugh for pointing out some coros.queue(0) bugs.</p>
<p>Fix the libev hub to match libev&#8217;s callback signature. (Patch by grugq)</p>
<p>Add a backlog argument to api.tcp_listener (Patch by grugq)</p>
</div>
<div class="section" id="id47">
<h1>0.7.x<a class="headerlink" href="#id47" title="Permalink to this headline"></a></h1>
<div class="section" id="id48">
<h1>0.7.x<a class="headerlink" href="#id48" title="Permalink to this headline"></a></h1>
<p>Fix a major memory leak when using the libevent or libev hubs. Timers were not being removed from the hub after they fired. (Thanks Agusto Becciu and the grugq). Also, make it possible to call wrap_socket_with_coroutine_socket without using the threadpool to make dns operations non-blocking (Thanks the grugq).</p>
<p>It&#8217;s now possible to use eventlet&#8217;s SSL client to talk to eventlet&#8217;s SSL server. (Thanks to Ryan Williams)</p>
<p>Fixed a major CPU leak when using select hub. When adding a descriptor to the hub, entries were made in all three dictionaries, readers, writers, and exc, even if the callback is None. Thus every fd would be passed into all three lists when calling select regardless of whether there was a callback for that event or not. When reading the next request out of a keepalive socket, the socket would come back as ready for writing, the hub would notice the callback is None and ignore it, and then loop as fast as possible consuming CPU.</p>
</div>
<div class="section" id="id48">
<h1>0.6.x<a class="headerlink" href="#id48" title="Permalink to this headline"></a></h1>
<div class="section" id="id49">
<h1>0.6.x<a class="headerlink" href="#id49" title="Permalink to this headline"></a></h1>
<p>Fixes some long-standing bugs where sometimes failures in accept() or connect() would cause the coroutine that was waiting to be double-resumed, most often resulting in SwitchingToDeadGreenlet exceptions as well as weird tuple-unpacking exceptions in the CoroutinePool main loop.</p>
<p>0.6.1: Added eventlet.tpool.killall. Blocks until all of the threadpool threads have been told to exit and join()ed. Meant to be used to clean up the threadpool on exit or if calling execv. Used by Spawning.</p>
</div>
<div class="section" id="id49">
<h1>0.5.x<a class="headerlink" href="#id49" title="Permalink to this headline"></a></h1>
<div class="section" id="id50">
<h1>0.5.x<a class="headerlink" href="#id50" title="Permalink to this headline"></a></h1>
<p>&#8220;The Pycon 2008 Refactor&#8221;: The first release which incorporates libevent support. Also comes with significant refactoring and code cleanup, especially to the eventlet.wsgi http server. Docstring coverage is much higher and there is new extensive documentation: <a class="reference external" href="http://wiki.secondlife.com/wiki/Eventlet/Documentation">http://wiki.secondlife.com/wiki/Eventlet/Documentation</a></p>
<p>The point releases of 0.5.x fixed some bugs in the wsgi server, most notably handling of Transfer-Encoding: chunked; previously, it would happily send chunked encoding to clients which asked for HTTP/1.0, which isn&#8217;t legal.</p>
</div>
<div class="section" id="id50">
<h1>0.2<a class="headerlink" href="#id50" title="Permalink to this headline"></a></h1>
<div class="section" id="id51">
<h1>0.2<a class="headerlink" href="#id51" title="Permalink to this headline"></a></h1>
<p>Initial re-release of forked linden branch.</p>
</div>
@ -728,57 +751,58 @@ Thanks to Marcus Cavanaugh for pointing out some coros.queue(0) bugs.</p>
<div class="sphinxsidebarwrapper">
<h3><a href="index.html">Table Of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">0.20.1</a></li>
<li><a class="reference internal" href="#id2">0.20.0</a></li>
<li><a class="reference internal" href="#id3">0.19.0</a></li>
<li><a class="reference internal" href="#id4">0.18.4</a></li>
<li><a class="reference internal" href="#id5">0.18.3</a></li>
<li><a class="reference internal" href="#id6">0.18.2</a></li>
<li><a class="reference internal" href="#id7">0.18.1</a></li>
<li><a class="reference internal" href="#id8">0.18.0</a></li>
<li><a class="reference internal" href="#id9">0.17.4</a></li>
<li><a class="reference internal" href="#id10">0.17.3</a></li>
<li><a class="reference internal" href="#id11">0.17.2</a></li>
<li><a class="reference internal" href="#id12">0.17.1</a></li>
<li><a class="reference internal" href="#id13">0.17</a></li>
<li><a class="reference internal" href="#id14">0.16.1</a></li>
<li><a class="reference internal" href="#id15">0.16.0</a></li>
<li><a class="reference internal" href="#id16">0.15.2</a></li>
<li><a class="reference internal" href="#id17">0.15.1</a></li>
<li><a class="reference internal" href="#id18">0.15</a></li>
<li><a class="reference internal" href="#id19">0.14</a></li>
<li><a class="reference internal" href="#id20">0.13</a></li>
<li><a class="reference internal" href="#id21">0.12</a></li>
<li><a class="reference internal" href="#id22">0.11</a></li>
<li><a class="reference internal" href="#id23">0.10</a></li>
<li><a class="reference internal" href="#id24">0.9.17</a></li>
<li><a class="reference internal" href="#id25">0.9.16</a></li>
<li><a class="reference internal" href="#id26">0.9.15</a></li>
<li><a class="reference internal" href="#id27">0.9.14</a></li>
<li><a class="reference internal" href="#id28">0.9.13</a></li>
<li><a class="reference internal" href="#id29">0.9.12</a></li>
<li><a class="reference internal" href="#id30">0.9.10</a></li>
<li><a class="reference internal" href="#id31">0.9.9</a></li>
<li><a class="reference internal" href="#id32">0.9.8</a></li>
<li><a class="reference internal" href="#id33">0.9.7</a></li>
<li><a class="reference internal" href="#id34">0.9.6</a></li>
<li><a class="reference internal" href="#id35">0.9.5</a></li>
<li><a class="reference internal" href="#id36">0.9.4</a></li>
<li><a class="reference internal" href="#id37">0.9.3</a></li>
<li><a class="reference internal" href="#id38">0.9.2</a></li>
<li><a class="reference internal" href="#id39">0.9.1</a></li>
<li><a class="reference internal" href="#id40">0.9.0</a></li>
<li><a class="reference internal" href="#id41">0.8.16</a></li>
<li><a class="reference internal" href="#id42">0.8.15</a></li>
<li><a class="reference internal" href="#id43">0.8.14</a></li>
<li><a class="reference internal" href="#id44">0.8.13</a></li>
<li><a class="reference internal" href="#id45">0.8.12</a></li>
<li><a class="reference internal" href="#id46">0.8.11</a></li>
<li><a class="reference internal" href="#">0.21.0</a></li>
<li><a class="reference internal" href="#id2">0.20.1</a></li>
<li><a class="reference internal" href="#id3">0.20.0</a></li>
<li><a class="reference internal" href="#id4">0.19.0</a></li>
<li><a class="reference internal" href="#id5">0.18.4</a></li>
<li><a class="reference internal" href="#id6">0.18.3</a></li>
<li><a class="reference internal" href="#id7">0.18.2</a></li>
<li><a class="reference internal" href="#id8">0.18.1</a></li>
<li><a class="reference internal" href="#id9">0.18.0</a></li>
<li><a class="reference internal" href="#id10">0.17.4</a></li>
<li><a class="reference internal" href="#id11">0.17.3</a></li>
<li><a class="reference internal" href="#id12">0.17.2</a></li>
<li><a class="reference internal" href="#id13">0.17.1</a></li>
<li><a class="reference internal" href="#id14">0.17</a></li>
<li><a class="reference internal" href="#id15">0.16.1</a></li>
<li><a class="reference internal" href="#id16">0.16.0</a></li>
<li><a class="reference internal" href="#id17">0.15.2</a></li>
<li><a class="reference internal" href="#id18">0.15.1</a></li>
<li><a class="reference internal" href="#id19">0.15</a></li>
<li><a class="reference internal" href="#id20">0.14</a></li>
<li><a class="reference internal" href="#id21">0.13</a></li>
<li><a class="reference internal" href="#id22">0.12</a></li>
<li><a class="reference internal" href="#id23">0.11</a></li>
<li><a class="reference internal" href="#id24">0.10</a></li>
<li><a class="reference internal" href="#id25">0.9.17</a></li>
<li><a class="reference internal" href="#id26">0.9.16</a></li>
<li><a class="reference internal" href="#id27">0.9.15</a></li>
<li><a class="reference internal" href="#id28">0.9.14</a></li>
<li><a class="reference internal" href="#id29">0.9.13</a></li>
<li><a class="reference internal" href="#id30">0.9.12</a></li>
<li><a class="reference internal" href="#id31">0.9.10</a></li>
<li><a class="reference internal" href="#id32">0.9.9</a></li>
<li><a class="reference internal" href="#id33">0.9.8</a></li>
<li><a class="reference internal" href="#id34">0.9.7</a></li>
<li><a class="reference internal" href="#id35">0.9.6</a></li>
<li><a class="reference internal" href="#id36">0.9.5</a></li>
<li><a class="reference internal" href="#id37">0.9.4</a></li>
<li><a class="reference internal" href="#id38">0.9.3</a></li>
<li><a class="reference internal" href="#id39">0.9.2</a></li>
<li><a class="reference internal" href="#id40">0.9.1</a></li>
<li><a class="reference internal" href="#id41">0.9.0</a></li>
<li><a class="reference internal" href="#id42">0.8.16</a></li>
<li><a class="reference internal" href="#id43">0.8.15</a></li>
<li><a class="reference internal" href="#id44">0.8.14</a></li>
<li><a class="reference internal" href="#id45">0.8.13</a></li>
<li><a class="reference internal" href="#id46">0.8.12</a></li>
<li><a class="reference internal" href="#id47">0.8.11</a></li>
<li><a class="reference internal" href="#x">0.8.x</a></li>
<li><a class="reference internal" href="#id47">0.7.x</a></li>
<li><a class="reference internal" href="#id48">0.6.x</a></li>
<li><a class="reference internal" href="#id49">0.5.x</a></li>
<li><a class="reference internal" href="#id50">0.2</a></li>
<li><a class="reference internal" href="#id48">0.7.x</a></li>
<li><a class="reference internal" href="#id49">0.6.x</a></li>
<li><a class="reference internal" href="#id50">0.5.x</a></li>
<li><a class="reference internal" href="#id51">0.2</a></li>
</ul>
<div role="note" aria-label="source link">
@ -811,7 +835,7 @@ Thanks to Marcus Cavanaugh for pointing out some coros.queue(0) bugs.</p>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Design Patterns &#8212; Eventlet 0.20.1 documentation</title>
<title>Design Patterns &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="basic_usage.html" title="Basic Usage"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>
@ -203,7 +203,7 @@
<li class="right" >
<a href="basic_usage.html" title="Basic Usage"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Environment Variables &#8212; Eventlet 0.20.1 documentation</title>
<title>Environment Variables &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="testing.html" title="Testing Eventlet"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>
@ -120,7 +120,7 @@ use, so any control of the pool size needs to happen before then.</div></blockqu
<li class="right" >
<a href="testing.html" title="Testing Eventlet"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Examples &#8212; Eventlet 0.20.1 documentation</title>
<title>Examples &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="patching.html" title="Greening The World"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>
@ -607,7 +607,7 @@ implementation.</p>
<li class="right" >
<a href="patching.html" title="Greening The World"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>

View File

@ -7,7 +7,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Index &#8212; Eventlet 0.20.1 documentation</title>
<title>Index &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -15,7 +15,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -38,7 +38,7 @@
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>
@ -615,6 +615,8 @@
<li><a href="modules/db_pool.html#eventlet.db_pool.GenericConnectionWrapper.set_character_set">set_character_set() (eventlet.db_pool.GenericConnectionWrapper method)</a>
</li>
<li><a href="modules/zmq.html#eventlet.green.zmq.Socket.set_hwm">set_hwm() (eventlet.green.zmq.Socket method)</a>
</li>
<li><a href="modules/db_pool.html#eventlet.db_pool.GenericConnectionWrapper.set_isolation_level">set_isolation_level() (eventlet.db_pool.GenericConnectionWrapper method)</a>
</li>
<li><a href="modules/db_pool.html#eventlet.db_pool.GenericConnectionWrapper.set_server_option">set_server_option() (eventlet.db_pool.GenericConnectionWrapper method)</a>
</li>
@ -623,11 +625,11 @@
<li><a href="modules/zmq.html#eventlet.green.zmq.Socket.set_string">set_string() (eventlet.green.zmq.Socket method)</a>
</li>
<li><a href="modules/zmq.html#eventlet.green.zmq.Socket.setsockopt">setsockopt() (eventlet.green.zmq.Socket method)</a>
</li>
<li><a href="modules/zmq.html#eventlet.green.zmq.Socket.setsockopt_string">setsockopt_string() (eventlet.green.zmq.Socket method)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="modules/zmq.html#eventlet.green.zmq.Socket.setsockopt_string">setsockopt_string() (eventlet.green.zmq.Socket method)</a>
</li>
<li><a href="modules/zmq.html#eventlet.green.zmq.Socket.setsockopt_unicode">setsockopt_unicode() (eventlet.green.zmq.Socket method)</a>
</li>
<li><a href="modules/db_pool.html#eventlet.db_pool.GenericConnectionWrapper.show_warnings">show_warnings() (eventlet.db_pool.GenericConnectionWrapper method)</a>
@ -804,7 +806,7 @@
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>History &#8212; Eventlet 0.20.1 documentation</title>
<title>History &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -41,7 +41,7 @@
<li class="right" >
<a href="authors.html" title="Authors"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>
@ -102,7 +102,7 @@
<li class="right" >
<a href="authors.html" title="Authors"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Understanding Eventlet Hubs &#8212; Eventlet 0.20.1 documentation</title>
<title>Understanding Eventlet Hubs &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="zeromq.html" title="Zeromq"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>
@ -206,7 +206,7 @@ unexpectedly without being deprecated first.</p>
<li class="right" >
<a href="zeromq.html" title="Zeromq"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Eventlet Documentation &#8212; Eventlet 0.20.1 documentation</title>
<title>Eventlet Documentation &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -41,7 +41,7 @@
<li class="right" >
<a href="basic_usage.html" title="Basic Usage"
accesskey="N">next</a> |</li>
<li class="nav-item nav-item-0"><a href="#">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="#">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>
@ -233,7 +233,7 @@
<li class="right" >
<a href="basic_usage.html" title="Basic Usage"
>next</a> |</li>
<li class="nav-item nav-item-0"><a href="#">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="#">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Module Reference &#8212; Eventlet 0.20.1 documentation</title>
<title>Module Reference &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="environment.html" title="Environment Variables"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>
@ -139,7 +139,7 @@
<li class="right" >
<a href="environment.html" title="Environment Variables"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>backdoor Python interactive interpreter within a running process &#8212; Eventlet 0.20.1 documentation</title>
<title>backdoor Python interactive interpreter within a running process &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="../_static/classic.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="../modules.html" title="Module Reference"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" accesskey="U">Module Reference</a> &#187;</li>
</ul>
</div>
@ -144,7 +144,7 @@ variables in here.</p>
<li class="right" >
<a href="../modules.html" title="Module Reference"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" >Module Reference</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>corolocal Coroutine local storage &#8212; Eventlet 0.20.1 documentation</title>
<title>corolocal Coroutine local storage &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="../_static/classic.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="backdoor.html" title="backdoor Python interactive interpreter within a running process"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" accesskey="U">Module Reference</a> &#187;</li>
</ul>
</div>
@ -118,7 +118,7 @@
<li class="right" >
<a href="backdoor.html" title="backdoor Python interactive interpreter within a running process"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" >Module Reference</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>dagpool Dependency-Driven Greenthreads &#8212; Eventlet 0.20.1 documentation</title>
<title>dagpool Dependency-Driven Greenthreads &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="../_static/classic.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="corolocal.html" title="corolocal Coroutine local storage"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" accesskey="U">Module Reference</a> &#187;</li>
</ul>
</div>
@ -823,7 +823,7 @@ PropagateError.</p>
<li class="right" >
<a href="corolocal.html" title="corolocal Coroutine local storage"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" >Module Reference</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>db_pool DBAPI 2 database connection pooling &#8212; Eventlet 0.20.1 documentation</title>
<title>db_pool DBAPI 2 database connection pooling &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="../_static/classic.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="debug.html" title="debug Debugging tools for Eventlet"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" accesskey="U">Module Reference</a> &#187;</li>
</ul>
</div>
@ -167,7 +167,7 @@ connection pools on a per-host basis.</p>
<em class="property">class </em><code class="descclassname">eventlet.db_pool.</code><code class="descname">GenericConnectionWrapper</code><span class="sig-paren">(</span><em>baseconn</em><span class="sig-paren">)</span><a class="headerlink" href="#eventlet.db_pool.GenericConnectionWrapper" title="Permalink to this definition"></a></dt>
<dd><dl class="method">
<dt id="eventlet.db_pool.GenericConnectionWrapper.affected_rows">
<code class="descname">affected_rows</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventlet.db_pool.GenericConnectionWrapper.affected_rows" title="Permalink to this definition"></a></dt>
<code class="descname">affected_rows</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventlet.db_pool.GenericConnectionWrapper.affected_rows" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
@ -177,7 +177,7 @@ connection pools on a per-host basis.</p>
<dl class="method">
<dt id="eventlet.db_pool.GenericConnectionWrapper.begin">
<code class="descname">begin</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventlet.db_pool.GenericConnectionWrapper.begin" title="Permalink to this definition"></a></dt>
<code class="descname">begin</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventlet.db_pool.GenericConnectionWrapper.begin" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
@ -265,6 +265,11 @@ connection pools on a per-host basis.</p>
<code class="descname">set_character_set</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventlet.db_pool.GenericConnectionWrapper.set_character_set" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="eventlet.db_pool.GenericConnectionWrapper.set_isolation_level">
<code class="descname">set_isolation_level</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventlet.db_pool.GenericConnectionWrapper.set_isolation_level" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="eventlet.db_pool.GenericConnectionWrapper.set_server_option">
<code class="descname">set_server_option</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventlet.db_pool.GenericConnectionWrapper.set_server_option" title="Permalink to this definition"></a></dt>
@ -277,7 +282,7 @@ connection pools on a per-host basis.</p>
<dl class="method">
<dt id="eventlet.db_pool.GenericConnectionWrapper.show_warnings">
<code class="descname">show_warnings</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventlet.db_pool.GenericConnectionWrapper.show_warnings" title="Permalink to this definition"></a></dt>
<code class="descname">show_warnings</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventlet.db_pool.GenericConnectionWrapper.show_warnings" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
@ -317,7 +322,7 @@ connection pools on a per-host basis.</p>
<dl class="method">
<dt id="eventlet.db_pool.GenericConnectionWrapper.warning_count">
<code class="descname">warning_count</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventlet.db_pool.GenericConnectionWrapper.warning_count" title="Permalink to this definition"></a></dt>
<code class="descname">warning_count</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventlet.db_pool.GenericConnectionWrapper.warning_count" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
@ -437,7 +442,7 @@ connections.</p>
<li class="right" >
<a href="debug.html" title="debug Debugging tools for Eventlet"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" >Module Reference</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>debug Debugging tools for Eventlet &#8212; Eventlet 0.20.1 documentation</title>
<title>debug Debugging tools for Eventlet &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="../_static/classic.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="dagpool.html" title="dagpool Dependency-Driven Greenthreads"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" accesskey="U">Module Reference</a> &#187;</li>
</ul>
</div>
@ -199,7 +199,7 @@ positives.</p>
<li class="right" >
<a href="dagpool.html" title="dagpool Dependency-Driven Greenthreads"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" >Module Reference</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>event Cross-greenthread primitive &#8212; Eventlet 0.20.1 documentation</title>
<title>event Cross-greenthread primitive &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="../_static/classic.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="db_pool.html" title="db_pool DBAPI 2 database connection pooling"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" accesskey="U">Module Reference</a> &#187;</li>
</ul>
</div>
@ -243,7 +243,7 @@ occurred.</p>
<li class="right" >
<a href="db_pool.html" title="db_pool DBAPI 2 database connection pooling"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" >Module Reference</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>greenpool Green Thread Pools &#8212; Eventlet 0.20.1 documentation</title>
<title>greenpool Green Thread Pools &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="../_static/classic.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="event.html" title="event Cross-greenthread primitive"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" accesskey="U">Module Reference</a> &#187;</li>
</ul>
</div>
@ -226,7 +226,7 @@ iterating over the GreenPile object.</p>
<li class="right" >
<a href="event.html" title="event Cross-greenthread primitive"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" >Module Reference</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>greenthread Green Thread Implementation &#8212; Eventlet 0.20.1 documentation</title>
<title>greenthread Green Thread Implementation &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="../_static/classic.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="greenpool.html" title="greenpool Green Thread Pools"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" accesskey="U">Module Reference</a> &#187;</li>
</ul>
</div>
@ -250,7 +250,7 @@ greenthread module).</p>
<li class="right" >
<a href="greenpool.html" title="greenpool Green Thread Pools"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" >Module Reference</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>pools - Generic pools of resources &#8212; Eventlet 0.20.1 documentation</title>
<title>pools - Generic pools of resources &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="../_static/classic.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="greenthread.html" title="greenthread Green Thread Implementation"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" accesskey="U">Module Reference</a> &#187;</li>
</ul>
</div>
@ -230,7 +230,7 @@ limited resource.</p>
<li class="right" >
<a href="greenthread.html" title="greenthread Green Thread Implementation"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" >Module Reference</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>queue Queue class &#8212; Eventlet 0.20.1 documentation</title>
<title>queue Queue class &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="../_static/classic.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="pools.html" title="pools - Generic pools of resources"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" accesskey="U">Module Reference</a> &#187;</li>
</ul>
</div>
@ -272,7 +272,7 @@ items into the queue.</p>
<li class="right" >
<a href="pools.html" title="pools - Generic pools of resources"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" >Module Reference</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>semaphore Semaphore classes &#8212; Eventlet 0.20.1 documentation</title>
<title>semaphore Semaphore classes &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="../_static/classic.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="queue.html" title="queue Queue class"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" accesskey="U">Module Reference</a> &#187;</li>
</ul>
</div>
@ -285,7 +285,7 @@ counter is greater than or equal to <em>limit</em>.</p>
<li class="right" >
<a href="queue.html" title="queue Queue class"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" >Module Reference</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>timeout Universal Timeouts &#8212; Eventlet 0.20.1 documentation</title>
<title>timeout Universal Timeouts &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="../_static/classic.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="semaphore.html" title="semaphore Semaphore classes"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" accesskey="U">Module Reference</a> &#187;</li>
</ul>
</div>
@ -155,7 +155,7 @@ value.</p>
<em>timeout_value</em> if provided, else raises <code class="xref py py-class docutils literal"><span class="pre">Timeout</span></code>.</p>
</td>
</tr>
<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first"><a class="reference internal" href="../basic_usage.html#eventlet.Timeout" title="eventlet.Timeout"><strong>Timeout</strong></a> &#8211; if <em>func</em> times out and no <code class="docutils literal"><span class="pre">timeout_value</span></code> has
<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first"><a class="reference internal" href="#eventlet.timeout.Timeout" title="eventlet.timeout.Timeout"><strong>Timeout</strong></a> &#8211; if <em>func</em> times out and no <code class="docutils literal"><span class="pre">timeout_value</span></code> has
been provided.</p>
</td>
</tr>
@ -223,7 +223,7 @@ is passed through to the caller.</p>
<li class="right" >
<a href="semaphore.html" title="semaphore Semaphore classes"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" >Module Reference</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>websocket Websocket Server &#8212; Eventlet 0.20.1 documentation</title>
<title>websocket Websocket Server &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="../_static/classic.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="timeout.html" title="timeout Universal Timeouts"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" accesskey="U">Module Reference</a> &#187;</li>
</ul>
</div>
@ -199,7 +199,7 @@ websocket message.</p>
<li class="right" >
<a href="timeout.html" title="timeout Universal Timeouts"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" >Module Reference</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>wsgi WSGI server &#8212; Eventlet 0.20.1 documentation</title>
<title>wsgi WSGI server &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="../_static/classic.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="websocket.html" title="websocket Websocket Server"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" accesskey="U">Module Reference</a> &#187;</li>
</ul>
</div>
@ -297,7 +297,7 @@ in the wsgi test case <code class="docutils literal"><span class="pre">tests/wsg
<li class="right" >
<a href="websocket.html" title="websocket Websocket Server"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" >Module Reference</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>eventlet.green.zmq ØMQ support &#8212; Eventlet 0.20.1 documentation</title>
<title>eventlet.green.zmq ØMQ support &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="../_static/classic.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="wsgi.html" title="wsgi WSGI server"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" accesskey="U">Module Reference</a> &#187;</li>
</ul>
</div>
@ -396,7 +396,7 @@ otherwise it will be bytes.</dd>
<dl class="method">
<dt id="eventlet.green.zmq.Socket.recv_json">
<code class="descname">recv_json</code><span class="sig-paren">(</span><em>flags=0</em>, <em>copy=True</em>, <em>track=False</em><span class="sig-paren">)</span><a class="headerlink" href="#eventlet.green.zmq.Socket.recv_json" title="Permalink to this definition"></a></dt>
<code class="descname">recv_json</code><span class="sig-paren">(</span><em>flags=0</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventlet.green.zmq.Socket.recv_json" title="Permalink to this definition"></a></dt>
<dd><p>receive a Python object as a message using json to serialize</p>
<dl class="docutils">
<dt>flags</dt>
@ -435,7 +435,7 @@ depending on <cite>copy</cite>.</dd>
<dl class="method">
<dt id="eventlet.green.zmq.Socket.recv_pyobj">
<code class="descname">recv_pyobj</code><span class="sig-paren">(</span><em>flags=0</em>, <em>copy=True</em>, <em>track=False</em><span class="sig-paren">)</span><a class="headerlink" href="#eventlet.green.zmq.Socket.recv_pyobj" title="Permalink to this definition"></a></dt>
<code class="descname">recv_pyobj</code><span class="sig-paren">(</span><em>flags=0</em><span class="sig-paren">)</span><a class="headerlink" href="#eventlet.green.zmq.Socket.recv_pyobj" title="Permalink to this definition"></a></dt>
<dd><p>receive a Python object as a message using pickle to serialize</p>
<dl class="docutils">
<dt>flags</dt>
@ -449,7 +449,7 @@ depending on <cite>copy</cite>.</dd>
<dl class="method">
<dt id="eventlet.green.zmq.Socket.recv_string">
<code class="descname">recv_string</code><span class="sig-paren">(</span><em>flags=0</em>, <em>copy=True</em>, <em>track=False</em><span class="sig-paren">)</span><a class="headerlink" href="#eventlet.green.zmq.Socket.recv_string" title="Permalink to this definition"></a></dt>
<code class="descname">recv_string</code><span class="sig-paren">(</span><em>flags=0</em>, <em>encoding='utf-8'</em><span class="sig-paren">)</span><a class="headerlink" href="#eventlet.green.zmq.Socket.recv_string" title="Permalink to this definition"></a></dt>
<dd><p>receive a unicode string, as sent by send_string</p>
<dl class="docutils">
<dt>flags</dt>
@ -514,7 +514,7 @@ be True until the send is completed.</dd>
<dl class="method">
<dt id="eventlet.green.zmq.Socket.send_json">
<code class="descname">send_json</code><span class="sig-paren">(</span><em>msg_parts</em>, <em>flags=0</em>, <em>copy=True</em>, <em>track=False</em><span class="sig-paren">)</span><a class="headerlink" href="#eventlet.green.zmq.Socket.send_json" title="Permalink to this definition"></a></dt>
<code class="descname">send_json</code><span class="sig-paren">(</span><em>obj</em>, <em>flags=0</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventlet.green.zmq.Socket.send_json" title="Permalink to this definition"></a></dt>
<dd><p>send a Python object as a message using json to serialize</p>
<dl class="docutils">
<dt>obj</dt>
@ -549,7 +549,7 @@ be True until the last send is completed.</div></blockquote>
<dl class="method">
<dt id="eventlet.green.zmq.Socket.send_pyobj">
<code class="descname">send_pyobj</code><span class="sig-paren">(</span><em>msg_parts</em>, <em>flags=0</em>, <em>copy=True</em>, <em>track=False</em><span class="sig-paren">)</span><a class="headerlink" href="#eventlet.green.zmq.Socket.send_pyobj" title="Permalink to this definition"></a></dt>
<code class="descname">send_pyobj</code><span class="sig-paren">(</span><em>obj</em>, <em>flags=0</em>, <em>protocol=2</em><span class="sig-paren">)</span><a class="headerlink" href="#eventlet.green.zmq.Socket.send_pyobj" title="Permalink to this definition"></a></dt>
<dd><p>send a Python object as a message using pickle to serialize</p>
<dl class="docutils">
<dt>obj</dt>
@ -565,7 +565,7 @@ support.</dd>
<dl class="method">
<dt id="eventlet.green.zmq.Socket.send_string">
<code class="descname">send_string</code><span class="sig-paren">(</span><em>msg_parts</em>, <em>flags=0</em>, <em>copy=True</em>, <em>track=False</em><span class="sig-paren">)</span><a class="headerlink" href="#eventlet.green.zmq.Socket.send_string" title="Permalink to this definition"></a></dt>
<code class="descname">send_string</code><span class="sig-paren">(</span><em>u</em>, <em>flags=0</em>, <em>copy=True</em>, <em>encoding='utf-8'</em><span class="sig-paren">)</span><a class="headerlink" href="#eventlet.green.zmq.Socket.send_string" title="Permalink to this definition"></a></dt>
<dd><p>send a Python unicode string as a message with an encoding</p>
<p>0MQ communicates with raw bytes, so you must encode/decode
text (unicode on py2, str on py3) around 0MQ.</p>
@ -774,7 +774,7 @@ encoded to utf-8 first.</dd>
<li class="right" >
<a href="wsgi.html" title="wsgi WSGI server"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../modules.html" >Module Reference</a> &#187;</li>
</ul>
</div>

Binary file not shown.

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Greening The World &#8212; Eventlet 0.20.1 documentation</title>
<title>Greening The World &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="design_patterns.html" title="Design Patterns"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>
@ -179,7 +179,7 @@ library. This has the disadvantage of appearing quite magical, but the advantag
<li class="right" >
<a href="design_patterns.html" title="Design Patterns"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Python Module Index &#8212; Eventlet 0.20.1 documentation</title>
<title>Python Module Index &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -40,7 +40,7 @@
<li class="right" >
<a href="#" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>
@ -176,7 +176,7 @@
<li class="right" >
<a href="#" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Search &#8212; Eventlet 0.20.1 documentation</title>
<title>Search &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>
@ -96,7 +96,7 @@
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>

File diff suppressed because one or more lines are too long

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Using SSL With Eventlet &#8212; Eventlet 0.20.1 documentation</title>
<title>Using SSL With Eventlet &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="examples.html" title="Examples"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>
@ -78,13 +78,22 @@
<div class="section" id="pyopenssl">
<h2>PyOpenSSL<a class="headerlink" href="#pyopenssl" title="Permalink to this headline"></a></h2>
<p><code class="xref py py-mod docutils literal"><span class="pre">eventlet.green.OpenSSL</span></code> has exactly the same interface as <a class="reference external" href="https://launchpad.net/pyopenssl">pyOpenSSL</a> <a class="reference external" href="http://pyopenssl.sourceforge.net/pyOpenSSL.html/">(docs)</a>, and works in all versions of Python. This module is much more powerful than <code class="xref py py-func docutils literal"><span class="pre">socket.ssl()</span></code>, and may have some advantages over <a class="reference external" href="https://docs.python.org/2/library/ssl.html#module-ssl" title="(in Python v2.7)"><code class="xref py py-mod docutils literal"><span class="pre">ssl</span></code></a>, depending on your needs.</p>
<p>Here&#8217;s an example of a server:</p>
<p>For testing purpose first create self-signed certificate using following commands</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ openssl genrsa 1024 &gt; server.key
$ openssl req -new -x509 -nodes -sha1 -days 365 -key server.key &gt; server.cert
</pre></div>
</div>
<p>Keep these Private key and Self-signed certificate in same directory as <cite>server.py</cite> and <cite>client.py</cite> for simplicity sake.</p>
<p>Here&#8217;s an example of a server (<cite>server.py</cite>)</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">eventlet.green</span> <span class="k">import</span> <span class="n">socket</span>
<span class="kn">from</span> <span class="nn">eventlet.green.OpenSSL</span> <span class="k">import</span> <span class="n">SSL</span>
<span class="c1"># insecure context, only for example purposes</span>
<span class="n">context</span> <span class="o">=</span> <span class="n">SSL</span><span class="o">.</span><span class="n">Context</span><span class="p">(</span><span class="n">SSL</span><span class="o">.</span><span class="n">SSLv23_METHOD</span><span class="p">)</span>
<span class="n">context</span><span class="o">.</span><span class="n">set_verify</span><span class="p">(</span><span class="n">SSL</span><span class="o">.</span><span class="n">VERIFY_NONE</span><span class="p">,</span> <span class="k">lambda</span> <span class="o">*</span><span class="n">x</span><span class="p">:</span> <span class="kc">True</span><span class="p">))</span>
<span class="c1"># Pass server&#39;s private key created</span>
<span class="n">context</span><span class="o">.</span><span class="n">use_privatekey_file</span><span class="p">(</span><span class="s1">&#39;server.key&#39;</span><span class="p">)</span>
<span class="c1"># Pass self-signed certificate created</span>
<span class="n">context</span><span class="o">.</span><span class="n">use_certificate_file</span><span class="p">(</span><span class="s1">&#39;server.cert&#39;</span><span class="p">)</span>
<span class="c1"># create underlying green socket and wrap it in ssl</span>
<span class="n">sock</span> <span class="o">=</span> <span class="n">socket</span><span class="o">.</span><span class="n">socket</span><span class="p">(</span><span class="n">socket</span><span class="o">.</span><span class="n">AF_INET</span><span class="p">,</span> <span class="n">socket</span><span class="o">.</span><span class="n">SOCK_STREAM</span><span class="p">)</span>
@ -92,7 +101,7 @@
<span class="c1"># configure as server</span>
<span class="n">connection</span><span class="o">.</span><span class="n">set_accept_state</span><span class="p">()</span>
<span class="n">connection</span><span class="o">.</span><span class="n">bind</span><span class="p">((</span><span class="s1">&#39;127.0.0.1&#39;</span><span class="p">,</span> <span class="mi">80443</span><span class="p">))</span>
<span class="n">connection</span><span class="o">.</span><span class="n">bind</span><span class="p">((</span><span class="s1">&#39;127.0.0.1&#39;</span><span class="p">,</span> <span class="mi">8443</span><span class="p">))</span>
<span class="n">connection</span><span class="o">.</span><span class="n">listen</span><span class="p">(</span><span class="mi">50</span><span class="p">)</span>
<span class="c1"># accept one client connection then close up shop</span>
@ -103,6 +112,27 @@
<span class="n">connection</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
</pre></div>
</div>
<p>Here&#8217;s an example of a client (<cite>client.py</cite>)</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">socket</span>
<span class="c1"># Create socket</span>
<span class="n">s</span> <span class="o">=</span> <span class="n">socket</span><span class="o">.</span><span class="n">socket</span><span class="p">(</span><span class="n">socket</span><span class="o">.</span><span class="n">AF_INET</span><span class="p">,</span> <span class="n">socket</span><span class="o">.</span><span class="n">SOCK_STREAM</span><span class="p">)</span>
<span class="c1"># Connect to server</span>
<span class="n">s</span><span class="o">.</span><span class="n">connect</span><span class="p">((</span><span class="s1">&#39;127.0.0.1&#39;</span><span class="p">,</span> <span class="mi">8443</span><span class="p">))</span>
<span class="n">sslSocket</span> <span class="o">=</span> <span class="n">socket</span><span class="o">.</span><span class="n">ssl</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
<span class="nb">print</span> <span class="nb">repr</span><span class="p">(</span><span class="n">sslSocket</span><span class="o">.</span><span class="n">server</span><span class="p">())</span>
<span class="nb">print</span> <span class="nb">repr</span><span class="p">(</span><span class="n">sslSocket</span><span class="o">.</span><span class="n">issuer</span><span class="p">())</span>
<span class="n">sslSocket</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;Hello secure socket</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
<span class="c1"># Close client</span>
<span class="n">s</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
</pre></div>
</div>
<p>Running example:</p>
<p>In first terminal</p>
<blockquote>
<div>$ python server.py</div></blockquote>
<p>In another terminal</p>
<blockquote>
<div>$ python client.py</div></blockquote>
</div>
</div>
@ -164,7 +194,7 @@
<li class="right" >
<a href="examples.html" title="Examples"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Testing Eventlet &#8212; Eventlet 0.20.1 documentation</title>
<title>Testing Eventlet &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="hubs.html" title="Understanding Eventlet Hubs"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>
@ -181,7 +181,7 @@
<li class="right" >
<a href="hubs.html" title="Understanding Eventlet Hubs"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Threads &#8212; Eventlet 0.20.1 documentation</title>
<title>Threads &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="ssl.html" title="Using SSL With Eventlet"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>
@ -167,7 +167,7 @@ wrapped in Proxy objects when accessed.</p>
<li class="right" >
<a href="ssl.html" title="Using SSL With Eventlet"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Zeromq &#8212; Eventlet 0.20.1 documentation</title>
<title>Zeromq &#8212; Eventlet 0.21.0 documentation</title>
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '0.20.1',
VERSION: '0.21.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
@ -45,7 +45,7 @@
<li class="right" >
<a href="threading.html" title="Threads"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>
@ -137,7 +137,7 @@ while simultaneously accepting incoming connections from multiple endpoints boun
<li class="right" >
<a href="threading.html" title="Threads"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.20.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">Eventlet 0.21.0 documentation</a> &#187;</li>
</ul>
</div>

View File

@ -54,7 +54,7 @@ pip install eventlet
<p>Alternately, you can download the source archive:</p>
<ul>
<li>latest release from <a class="reference external" target="_blank" href="https://pypi.python.org/pypi/eventlet/">PyPi</a>:
<a class="reference external" href="https://pypi.python.org/packages/source/e/eventlet/eventlet-0.20.1.tar.gz">eventlet-0.20.1.tar.gz</a></li>
<a class="reference external" href="https://pypi.python.org/packages/source/e/eventlet/eventlet-0.21.0.tar.gz">eventlet-0.21.0.tar.gz</a></li>
<li>or <a class="reference external" href="https://github.com/eventlet/eventlet/archive/master.zip">latest development version</a></li>
</ul>