blob: d57567d1f7a2a92d8a3963bc43a33e410c62134a [file] [log] [blame]
#-------------------------------------------------------------------------------
# elftools: common/py3compat.py
#
# Python 3 compatibility code
#
# Eli Bendersky (eliben@gmail.com)
# This code is in the public domain
#-------------------------------------------------------------------------------
import sys
PY3 = sys.version_info[0] == 3
if PY3:
import io
StringIO = io.StringIO
BytesIO = io.BytesIO
import collections
OrderedDict = collections.OrderedDict
_iterkeys = "keys"
_iteritems = "items"
_itervalues = "values"
def bytes2str(b): return b.decode('latin-1')
def str2bytes(s): return s.encode('latin-1')
def int2byte(i):return bytes((i,))
def byte2int(b): return b
ifilter = filter
maxint = sys.maxsize
else:
import cStringIO
StringIO = BytesIO = cStringIO.StringIO
from .ordereddict import OrderedDict
_iterkeys = "iterkeys"
_iteritems = "iteritems"
_itervalues = "itervalues"
def bytes2str(b): return b
def str2bytes(s): return s
int2byte = chr
byte2int = ord
from itertools import ifilter
maxint = sys.maxint
def iterkeys(d):
"""Return an iterator over the keys of a dictionary."""
return getattr(d, _iterkeys)()
def itervalues(d):
"""Return an iterator over the values of a dictionary."""
return getattr(d, _itervalues)()
def iteritems(d):
"""Return an iterator over the items of a dictionary."""
return getattr(d, _iteritems)()