Added python-eventlet 0.15.2 for Ubuntu 14.04
[packages/trusty/python-eventlet.git] / eventlet / eventlet / support / __init__.py
1 import sys
2
3 from eventlet.support import greenlets
4
5
6 def get_errno(exc):
7     """ Get the error code out of socket.error objects.
8     socket.error in <2.5 does not have errno attribute
9     socket.error in 3.x does not allow indexing access
10     e.args[0] works for all.
11     There are cases when args[0] is not errno.
12     i.e. http://bugs.python.org/issue6471
13     Maybe there are cases when errno is set, but it is not the first argument?
14     """
15
16     try:
17         if exc.errno is not None:
18             return exc.errno
19     except AttributeError:
20         pass
21     try:
22         return exc.args[0]
23     except IndexError:
24         return None
25
26
27 if sys.version_info[0] < 3 and not greenlets.preserves_excinfo:
28     from sys import exc_clear as clear_sys_exc_info
29 else:
30     def clear_sys_exc_info():
31         """No-op In py3k.
32         Exception information is not visible outside of except statements.
33         sys.exc_clear became obsolete and removed."""
34         pass