python3 compat fixes; Thanks to Astrum Kuo
https://github.com/eventlet/eventlet/pull/82 Celery could work with eventlet in Python3 now
This commit is contained in:
committed by
Sergey Shepelev
parent
983d478eaf
commit
5399fbda9d
1
AUTHORS
1
AUTHORS
@@ -93,3 +93,4 @@ Thanks To
|
||||
* David Goetz, wsgi: Allow minimum_chunk_size to be overriden on a per request basis
|
||||
* Dmitry Orlov, websocket: accept Upgrade: websocket (lowercase)
|
||||
* Zhang Hua, profile: accumulate results between runs (Bitbucket #162)
|
||||
* Astrum Kuo, python3 compatibility fixes
|
||||
|
||||
@@ -74,7 +74,7 @@ def select(read_list, write_list, error_list, timeout=None):
|
||||
if timeout is not None:
|
||||
timers.append(hub.schedule_call_global(timeout, on_timeout))
|
||||
try:
|
||||
for k, v in ds.iteritems():
|
||||
for k, v in six.iteritems(ds):
|
||||
if v.get('read'):
|
||||
listeners.append(hub.add(hub.READ, k, on_read))
|
||||
if v.get('write'):
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
"""Implements the standard thread module, using greenthreads."""
|
||||
__thread = __import__('thread')
|
||||
from eventlet.support.six.moves import _thread as __thread
|
||||
from eventlet.support import greenlets as greenlet
|
||||
from eventlet import greenthread
|
||||
from eventlet.semaphore import Semaphore as LockType
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import os
|
||||
import sys
|
||||
from eventlet import patcher
|
||||
from eventlet.support import six
|
||||
select = patcher.original('select')
|
||||
time = patcher.original('time')
|
||||
sleep = time.sleep
|
||||
@@ -33,8 +34,8 @@ class Hub(BaseHub):
|
||||
self.kqueue.close()
|
||||
self._init_kqueue()
|
||||
kqueue = self.kqueue
|
||||
events = [e for i in self._events.itervalues()
|
||||
for e in i.itervalues()]
|
||||
events = [e for i in six.itervalues(self._events)
|
||||
for e in six.itervalues(i)]
|
||||
kqueue.control(events, 0, 0)
|
||||
|
||||
def _control(self, events, max_events, timeout):
|
||||
@@ -62,8 +63,8 @@ class Hub(BaseHub):
|
||||
return listener
|
||||
|
||||
def _delete_events(self, events):
|
||||
del_events = map(lambda e: select.kevent(e.ident, e.filter,
|
||||
select.KQ_EV_DELETE), events)
|
||||
del_events = [select.kevent(e.ident, e.filter, select.KQ_EV_DELETE)
|
||||
for e in events]
|
||||
self._control(del_events, 0, 0)
|
||||
|
||||
def remove(self, listener):
|
||||
|
||||
@@ -217,7 +217,7 @@ def monkey_patch(**on):
|
||||
accepted_args = set(('os', 'select', 'socket',
|
||||
'thread', 'time', 'psycopg', 'MySQLdb'))
|
||||
default_on = on.pop("all",None)
|
||||
for k in on.iterkeys():
|
||||
for k in six.iterkeys(on):
|
||||
if k not in accepted_args:
|
||||
raise TypeError("monkey_patch() got an unexpected "\
|
||||
"keyword argument %r" % k)
|
||||
@@ -344,4 +344,6 @@ if __name__ == "__main__":
|
||||
import sys
|
||||
sys.argv.pop(0)
|
||||
monkey_patch()
|
||||
execfile(sys.argv[0])
|
||||
with open(sys.argv[0]) as f:
|
||||
code = compile(f.read(), sys.argv[0], 'exec')
|
||||
exec(code)
|
||||
|
||||
Reference in New Issue
Block a user