python: Make iterator handling Python 3 compatible
Many functions that used to return lists (e.g., dict.items()) now return iterators and their iterator counterparts (e.g., dict.iteritems()) have been removed. Switch calls to the Python 2.7 iterator methods to use the Python 3 equivalent and add explicit list conversions where necessary. Change-Id: I0c18114955af8f4932d81fb689a0adb939dafaba Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/15992 Reviewed-by: Juha Jäykkä <juha.jaykka@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
This commit is contained in:
@@ -41,7 +41,7 @@ class SortedDict(dict):
|
||||
try:
|
||||
return self._sorted_keys
|
||||
except AttributeError:
|
||||
_sorted_keys = self.sorted(dict.iterkeys(self))
|
||||
_sorted_keys = self.sorted(dict.keys(self))
|
||||
self._sorted_keys = _sorted_keys
|
||||
return _sorted_keys
|
||||
|
||||
@@ -89,7 +89,7 @@ class SortedDict(dict):
|
||||
|
||||
def __repr__(self):
|
||||
return 'SortedDict({%s})' % ', '.join('%r: %r' % item
|
||||
for item in self.iteritems())
|
||||
for item in self.items())
|
||||
def __setitem__(self, key, item):
|
||||
dict.__setitem__(self, key, item)
|
||||
self._del_keys()
|
||||
@@ -107,22 +107,13 @@ class SortedDict(dict):
|
||||
return t(self)
|
||||
|
||||
def keys(self):
|
||||
return self._keys[:]
|
||||
return self._keys
|
||||
|
||||
def values(self):
|
||||
return list(self.itervalues())
|
||||
|
||||
def items(self):
|
||||
return list(self.iteritems())
|
||||
|
||||
def iterkeys(self):
|
||||
return iter(self._keys)
|
||||
|
||||
def itervalues(self):
|
||||
for k in self._keys:
|
||||
yield self[k]
|
||||
|
||||
def iteritems(self):
|
||||
def items(self):
|
||||
for k in self._keys:
|
||||
yield k, self[k]
|
||||
|
||||
@@ -184,12 +175,12 @@ class SortedDict(dict):
|
||||
if __name__ == '__main__':
|
||||
def display(d):
|
||||
print(d)
|
||||
print(d.keys())
|
||||
print(list(d.iterkeys()))
|
||||
print(d.values())
|
||||
print(list(d.itervalues()))
|
||||
print(d.items())
|
||||
print(list(d.iteritems()))
|
||||
print(list(d.keys()))
|
||||
print(list(d.keys()))
|
||||
print(list(d.values()))
|
||||
print(list(d.values()))
|
||||
print(list(d.items()))
|
||||
print(list(d.items()))
|
||||
|
||||
d = SortedDict(x=24,e=5,j=4,b=2,z=26,d=4)
|
||||
display(d)
|
||||
|
||||
Reference in New Issue
Block a user