diff --git a/eventlet/api.py b/eventlet/api.py index 8c2b0d4..1a78872 100644 --- a/eventlet/api.py +++ b/eventlet/api.py @@ -30,27 +30,7 @@ import linecache import inspect import traceback -try: - import greenlet -except ImportError: - try: - import support.pylib - support.pylib.emulate() - greenlet = sys.modules['greenlet'] - except ImportError: - try: - import support.stacklesspypys - support.stacklesspypys.emulate() - greenlet = sys.modules['greenlet'] - except ImportError: - try: - import support.stacklesss - support.stacklesss.emulate() - greenlet = sys.modules['greenlet'] - except ImportError, e: - raise ImportError("Unable to find an implementation of greenlet.") - - +from eventlet.support import greenlet from eventlet import greenlib, tls __all__ = [ diff --git a/eventlet/channel.py b/eventlet/channel.py index a24799a..a8be44e 100644 --- a/eventlet/channel.py +++ b/eventlet/channel.py @@ -26,8 +26,7 @@ THE SOFTWARE. import collections from eventlet import api, greenlib - -import greenlet +from eventlet.support import greenlet __all__ = ['channel'] diff --git a/eventlet/greenlib.py b/eventlet/greenlib.py index c6fe5dc..e293112 100644 --- a/eventlet/greenlib.py +++ b/eventlet/greenlib.py @@ -25,7 +25,7 @@ THE SOFTWARE. import sys import itertools -import greenlet +from eventlet.support import greenlet from eventlet import tls diff --git a/eventlet/gthreadless.py b/eventlet/gthreadless.py index 382bc4d..9701ab4 100644 --- a/eventlet/gthreadless.py +++ b/eventlet/gthreadless.py @@ -1,4 +1,4 @@ -import greenlet +from eventlet.support import greenlet greenlet.main = greenlet.getcurrent() # WTF did greenlet.main go? from twisted.internet import defer, reactor diff --git a/eventlet/hubs/hub.py b/eventlet/hubs/hub.py index a5a3eb9..33b24fb 100644 --- a/eventlet/hubs/hub.py +++ b/eventlet/hubs/hub.py @@ -29,7 +29,7 @@ import errno import traceback import time -import greenlet +from eventlet.support import greenlet from eventlet import greenlib from eventlet.timer import Timer diff --git a/eventlet/hubs/libev.py b/eventlet/hubs/libev.py index 9899336..241d104 100644 --- a/eventlet/hubs/libev.py +++ b/eventlet/hubs/libev.py @@ -33,7 +33,7 @@ from eventlet import greenlib from eventlet.timer import Timer from eventlet.hubs import hub -import greenlet +from eventlet.support import greenlet # XXX for debugging only #raise ImportError() diff --git a/eventlet/hubs/libevent.py b/eventlet/hubs/libevent.py index ab7398a..cd50afa 100644 --- a/eventlet/hubs/libevent.py +++ b/eventlet/hubs/libevent.py @@ -33,7 +33,7 @@ from eventlet import greenlib from eventlet.timer import Timer from eventlet.hubs import hub -import greenlet +from eventlet.support import greenlet # XXX for debugging only #raise ImportError() diff --git a/eventlet/hubs/selecthub.py b/eventlet/hubs/selecthub.py index efda460..fac226e 100644 --- a/eventlet/hubs/selecthub.py +++ b/eventlet/hubs/selecthub.py @@ -28,8 +28,7 @@ import errno import time from eventlet.hubs import hub - -import greenlet +from eventlet.support import greenlet class Hub(hub.BaseHub): def wait(self, seconds=None): diff --git a/eventlet/hubs/selects.py b/eventlet/hubs/selects.py index c155ff8..f8e2297 100644 --- a/eventlet/hubs/selects.py +++ b/eventlet/hubs/selects.py @@ -29,7 +29,7 @@ import time from eventlet.hubs import hub -import greenlet +from eventlet.support import greenlet class Hub(hub.BaseHub): def wait(self, seconds=None): diff --git a/eventlet/support/greenlet.py b/eventlet/support/greenlet.py new file mode 100644 index 0000000..7dccade --- /dev/null +++ b/eventlet/support/greenlet.py @@ -0,0 +1,14 @@ +try: + from py.magic import greenlet + getcurrent = greenlet.getcurrent + GreenletExit = greenlet.GreenletExit +except ImportError: + try: + from stackless import greenlet + getcurrent = greenlet.getcurrent + GreenletExit = greenlet.GreenletExit + except ImportError: + try: + from support.stacklesss import greenlet, getcurrent, GreenletExit + except ImportError, e: + raise ImportError("Unable to find an implementation of greenlet.") diff --git a/eventlet/util.py b/eventlet/util.py index f8d2c16..9583e25 100644 --- a/eventlet/util.py +++ b/eventlet/util.py @@ -48,7 +48,7 @@ except ImportError: def g_log(*args): import sys - import greenlet + from eventlet.support import greenlet from eventlet.greenlib import greenlet_id g_id = greenlet_id() if g_id is None: