This is a maintenance release for Python 0.13.0, fixing a number of
issues. Read the changelog for details:
http://www.gevent.org/changelog.html
Get it from PyPI: http://pypi.python.org/pypi/gevent
Thanks to Ralf Schmitt who worked with me on this release.
Thanks to the following people who provided patches: David Hain, Teh
Ekik, Dmitry Chechik, Alexey Borzenkov, Antoine Pitrou, Örjan Persson.
Thanks to everyone who reported bugs and participated in the discussion.
Thanks to Leif K-Brooks (Omegle.com) and Spotify (Spotify.com) who
responded to the sponsorship call and provided funds for gevent
development!
Release 0.13.1 (Sep 23, 2010)¶
Release highlights:
- Fixed monkey to patch socket.create_connection.
- Updated gevent.ssl module to fully match the functionality of ssl on Python 2.7.
- Fixed Group.join() to handle raise_error=True properly, it used to raise TypeError (issue #36). Thanks to by David Hain.
- Fixed gevent.wsgi and gevent.pywsgi to join multiple Cookie headers (issue #40).
- Fixed select to recognize long arguments in addition to int.
- Fixed Semaphore.acquire() to return False when timeout expires instead of raising AssertionError (issue #39). Patch by Teh Ekik.
- Fixed JoinableQueue.join() to return immediatelly if queue is already empty (issue #45). Patch by Dmitry Chechik.
- Deprecated gevent.sslold module.
gevent.socket module:
- Overrode socket.shutdown() method to interrupt read/write operations on socket.
- Fixed possible NameError in socket.connect_ex() method. Patch by Alexey Borzenkov.
- Fixed socket leak in create_connection() function.
- Made gevent.socket import all public items from stdlib socket that do not do I/O.
gevent.ssl module:
- Imported a number of patches from stdlib by Antoine Pitrou:
- Calling makefile() method on an SSL object would prevent the underlying socket from being closed until all objects get truely destroyed (Python issue #5238).
- SSL handshake would ignore the socket timeout and block indefinitely if the other end didn’t respond (Python issue #5103).
- When calling getpeername() in SSLSocket.__init__, only silence exceptions caused by the “socket not connected” condition.
- Added support for ciphers argument.
- Updated SSLSocket.send and SSLSocket.recv methods to match the behavior of stdlib ssl better.
- Fixed ssl.SSLObject to delete events used by other greenlets when closing the instance (issue #34).
Miscellaneous:
- Made BaseServer accept long values as pool argument in addition to int.
- Made http._requests attribute public.
- Updated webchat example to use file on disk rather than in-memory sqlite database to avoid OperationalError.
- Fixed webproxy.py example to be runnable under external WSGI server.
- Fixed bogus failure in test__exc_info.py.
- Added new test to check PEP8 conformance: xtest_pep8.py.
- Fixed BackdoorServer close the connection on SystemExit and simplified the code.
- Made Pool raise ValueError when initialized with size=0.
- Updated setup.py --libevent to configure and make libevent if it’s not built already.
- Updated setup.py to use setuptools if present and add dependency on greenlet.
- Fixed doc/mysphinxext.py to work with Sphinx 1. Thanks by Örjan Persson.
The Last Release 0.13.0 (Jul 14, 2010)¶