diff options
| author | 郭旭星Astrum Kuo <guoxuxing@meituan.com> | 2014-04-01 17:51:44 +0800 |
|---|---|---|
| committer | Sergey Shepelev <temotor@gmail.com> | 2014-04-02 15:27:08 +0400 |
| commit | 5399fbda9df91d546a6f814030cdd9e225f83230 (patch) | |
| tree | 20d4189be1bf2a09f161b1e927127417ce3cbc6b /eventlet | |
| parent | 983d478eafb6c563b7954ad5e547ea728a7386d6 (diff) | |
| download | eventlet-5399fbda9df91d546a6f814030cdd9e225f83230.tar.gz | |
python3 compat fixes; Thanks to Astrum Kuo
https://github.com/eventlet/eventlet/pull/82
Celery could work with eventlet in Python3 now
Diffstat (limited to 'eventlet')
| -rw-r--r-- | eventlet/green/select.py | 2 | ||||
| -rw-r--r-- | eventlet/green/thread.py | 2 | ||||
| -rw-r--r-- | eventlet/hubs/kqueue.py | 9 | ||||
| -rw-r--r-- | eventlet/patcher.py | 6 |
4 files changed, 11 insertions, 8 deletions
diff --git a/eventlet/green/select.py b/eventlet/green/select.py index 54a28a7..6e91115 100644 --- a/eventlet/green/select.py +++ b/eventlet/green/select.py @@ -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'): diff --git a/eventlet/green/thread.py b/eventlet/green/thread.py index 126651a..9e15b8d 100644 --- a/eventlet/green/thread.py +++ b/eventlet/green/thread.py @@ -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 diff --git a/eventlet/hubs/kqueue.py b/eventlet/hubs/kqueue.py index 00a1a57..2cdcd70 100644 --- a/eventlet/hubs/kqueue.py +++ b/eventlet/hubs/kqueue.py @@ -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): diff --git a/eventlet/patcher.py b/eventlet/patcher.py index 0af4aa2..ee8832f 100644 --- a/eventlet/patcher.py +++ b/eventlet/patcher.py @@ -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) |
