49 lines
1.1 KiB
Python
49 lines
1.1 KiB
Python
# -*- 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
|