diff options
Diffstat (limited to 'python/gevent/_compat.py')
-rw-r--r-- | python/gevent/_compat.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/python/gevent/_compat.py b/python/gevent/_compat.py new file mode 100644 index 0000000..96f5f93 --- /dev/null +++ b/python/gevent/_compat.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +""" +internal gevent python 2/python 3 bridges. Not for external use. +""" + +from __future__ import print_function, absolute_import, division + + +import sys + +PY2 = sys.version_info[0] == 2 +PY3 = sys.version_info[0] >= 3 +PYPY = hasattr(sys, 'pypy_version_info') + +## Types + +if PY3: + string_types = (str,) + integer_types = (int,) + text_type = str + +else: + import __builtin__ # pylint:disable=import-error + string_types = __builtin__.basestring, + text_type = __builtin__.unicode + integer_types = (int, __builtin__.long) + + +## Exceptions +if PY3: + def reraise(t, value, tb=None): # pylint:disable=unused-argument + if value.__traceback__ is not tb and tb is not None: + raise value.with_traceback(tb) + raise value + +else: + from gevent._util_py2 import reraise # pylint:disable=import-error,no-name-in-module + reraise = reraise # export + +## Functions +if PY3: + iteritems = dict.items + itervalues = dict.values + xrange = range +else: + iteritems = dict.iteritems # python 3: pylint:disable=no-member + itervalues = dict.itervalues # python 3: pylint:disable=no-member + xrange = __builtin__.xrange |