You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
577 B
Python
28 lines
577 B
Python
5 years ago
|
"""
|
||
|
Compatibility layer for Python 3/Python 2 single codebase
|
||
|
"""
|
||
|
import sys
|
||
|
|
||
|
PY3_OR_LATER = sys.version_info[0] >= 3
|
||
|
PY27 = sys.version_info[:2] == (2, 7)
|
||
|
|
||
|
try:
|
||
|
_basestring = basestring
|
||
|
_bytes_or_unicode = (str, unicode)
|
||
|
except NameError:
|
||
|
_basestring = str
|
||
|
_bytes_or_unicode = (bytes, str)
|
||
|
|
||
|
|
||
|
def with_metaclass(meta, *bases):
|
||
|
"""Create a base class with a metaclass."""
|
||
|
return meta("NewBase", bases, {})
|
||
|
|
||
|
|
||
|
# python2.7 error compatibility
|
||
|
if PY27:
|
||
|
class CompatFileExistsError(OSError):
|
||
|
pass
|
||
|
else:
|
||
|
CompatFileExistsError = FileExistsError
|