- PEP 3106: dict.iterkeys(), .iteritems(), .itervalues() are now gone;
and .keys(), .items(), .values() return dict views.
The dict views aren't fully functional yet; in particular, they can't
be compared to sets yet. but they are useful as "iterator wells".
There are still 27 failing unit tests; I expect that many of these
have fairly trivial fixes, but there are so many, I could use help.
diff --git a/Lib/compiler/ast.py b/Lib/compiler/ast.py
index 259e1c4..bc283c0 100644
--- a/Lib/compiler/ast.py
+++ b/Lib/compiler/ast.py
@@ -1337,6 +1337,6 @@
def __repr__(self):
return "Yield(%s)" % (repr(self.value),)
-for name, obj in globals().items():
+for name, obj in list(globals().items()):
if isinstance(obj, type) and issubclass(obj, Node):
nodes[name.lower()] = obj
diff --git a/Lib/compiler/misc.py b/Lib/compiler/misc.py
index 588c7fb..b32d0dc 100644
--- a/Lib/compiler/misc.py
+++ b/Lib/compiler/misc.py
@@ -18,7 +18,7 @@
def add(self, elt):
self.elts[elt] = elt
def elements(self):
- return self.elts.keys()
+ return list(self.elts.keys())
def has_elt(self, elt):
return elt in self.elts
def remove(self, elt):
diff --git a/Lib/compiler/pyassem.py b/Lib/compiler/pyassem.py
index 551791e..cac899d 100644
--- a/Lib/compiler/pyassem.py
+++ b/Lib/compiler/pyassem.py
@@ -504,7 +504,7 @@
if name in cells]
for name in self.cellvars:
del cells[name]
- self.cellvars = self.cellvars + cells.keys()
+ self.cellvars = self.cellvars + list(cells.keys())
self.closure = self.cellvars + self.freevars
def _lookupName(self, name, list):
@@ -573,7 +573,7 @@
# similarly for other opcodes...
- for name, obj in locals().items():
+ for name, obj in list(locals().items()):
if name[:9] == "_convert_":
opname = name[9:]
_converters[opname] = obj