Add python-eventlet 0.16.1
[packages/trusty/python-eventlet.git] / eventlet / eventlet / support / greenlets.py
1 import distutils.version
2
3 try:
4     import greenlet
5     getcurrent = greenlet.greenlet.getcurrent
6     GreenletExit = greenlet.greenlet.GreenletExit
7     preserves_excinfo = (distutils.version.LooseVersion(greenlet.__version__)
8                          >= distutils.version.LooseVersion('0.3.2'))
9     greenlet = greenlet.greenlet
10 except ImportError as e:
11     raise
12     try:
13         from py.magic import greenlet
14         getcurrent = greenlet.getcurrent
15         GreenletExit = greenlet.GreenletExit
16         preserves_excinfo = False
17     except ImportError:
18         try:
19             from stackless import greenlet
20             getcurrent = greenlet.getcurrent
21             GreenletExit = greenlet.GreenletExit
22             preserves_excinfo = False
23         except ImportError:
24             try:
25                 from support.stacklesss import greenlet, getcurrent, GreenletExit
26                 preserves_excinfo = False
27                 (greenlet, getcurrent, GreenletExit)  # silence pyflakes
28             except ImportError as e:
29                 raise ImportError("Unable to find an implementation of greenlet.")