1 # pylint: disable=unused-import,redefined-builtin,undefined-variable
2 from __future__
import absolute_import
, division
, print_function
, unicode_literals
7 import urllib2
as parse
# noqa
10 from urllib
import parse
# noqa
13 PY_VERSION
= sys
.version_info
[:2] # (2, 7)
14 PY_VERSION_MAJOR
= PY_VERSION
[0]
15 PY2
= PY_VERSION_MAJOR
== 2
16 PY3
= PY_VERSION_MAJOR
>= 3
17 PY26_PLUS
= PY2
and sys
.version_info
[1] >= 6
18 WIN32
= sys
.platform
in {'win32', 'cygwin'}
24 def bstr(x
, encoding
=ENCODING
):
25 return bytes(x
, encoding
=encoding
)
46 # pylint: disable=unicode-builtin
48 # pylint: disable=unichr-builtin
50 # pylint: disable=long-builtin
51 int_types
= (int, long) # noqa
53 # Qt's max 32-bit signed integer range (-2147483648 to 2147483647)
57 def setenv(key
, value
):
58 """Compatibility wrapper for setting environment variables
60 Why? win32 requires putenv(). UNIX only requires os.environ.
62 if not PY3
and isinstance(value
, ustr
):
63 value
= value
.encode(ENCODING
, 'replace')
64 os
.environ
[key
] = value
69 """Compatibility wrapper for unsetting environment variables"""
70 os
.environ
.pop(key
, None)
71 if hasattr(os
, 'unsetenv'):
76 """Return the value as-is"""
80 def byte_offset_to_int_converter():
81 """Return a function to convert byte string offsets into ints
83 Indexing into python3 bytes returns ints, Python2 returns str.
84 Thus, on Python2 we need to use `ord()` to convert the byte into
85 an integer. It's already an int on Python3, so we use no_op there.