In [1]: from kazoo.handlers.gevent import SequentialGeventHandler
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-1-31acaf3fc700> in <module>()
----> 1 from kazoo.handlers.gevent import SequentialGeventHandler
/home/emmett/virtualenvs/kazoo-bug-test/lib/python2.7/site-packages/kazoo/handlers/gevent.py in <module>()
30
31
---> 32 class SequentialGeventHandler(object):
33 """Gevent handler for sequentially executing callbacks.
34
/home/emmett/virtualenvs/kazoo-bug-test/lib/python2.7/site-packages/kazoo/handlers/gevent.py in SequentialGeventHandler()
61 self._workers = []
62
---> 63 class timeout_exception(gevent.event.Timeout):
64 def __init__(self, msg):
65 gevent.event.Timeout.__init__(self, exception=msg)
AttributeError: 'module' object has no attribute 'Timeout'
Related issue on gevent: https://github.com/gevent/gevent/issues/1205 - apparently this is due to gevent.event.Timeout not being part of the public API that is guaranteed to not break across minor versions.
Description
After
gevent
's 1.3.0 release, importingkazoo.gevent.SequentialGeventHandler
breaks withAttributeError: 'module' object has no attribute 'Timeout'
.What I've run
In a freshly created virtualenv:
Related issue on
gevent
: https://github.com/gevent/gevent/issues/1205 - apparently this is due togevent.event.Timeout
not being part of the public API that is guaranteed to not break across minor versions.Related issue on
pykafka
: https://github.com/Parsely/pykafka/issues/801 - this issue has forced users to manually pin gevent versions as a workaround.