| #------------------------------------------------------------------------------- |
| # 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)() |
| |