Revert "Port obmc to python3.5"
Parse error with this change:
TypeError: iter() returned non-iterator of type 'PathTreeItemIterator'
This reverts commit f99783be6592130bbad2d0f69ada2b7ac61618f3.
Change-Id: Id2b7f4af5284d25d59e19905c7b873726b02f700
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/obmc/utils/pathtree.py b/obmc/utils/pathtree.py
index 190e3b4..a13c6cb 100644
--- a/obmc/utils/pathtree.py
+++ b/obmc/utils/pathtree.py
@@ -20,7 +20,7 @@
self.path_tree = path_tree
self.path = []
self.itlist = []
- self.subtree = ['/'] + list(filter(bool, subtree.split('/')))
+ self.subtree = ['/'] + filter(bool, subtree.split('/'))
self.depth = depth
d = path_tree.root
for k in self.subtree:
@@ -28,15 +28,15 @@
d = d[k]['children']
except KeyError:
raise KeyError(subtree)
- self.it = iter(d.items())
+ self.it = d.iteritems()
def __iter__(self):
return self
def __next__(self):
- return next(super(PathTreeItemIterator, self))
+ return super(PathTreeItemIterator, self).next()
- def __next__(self):
+ def next(self):
key, value = self._next()
path = self.subtree[0] + '/'.join(self.subtree[1:] + self.path)
return path, value.get('data')
@@ -44,13 +44,13 @@
def _next(self):
try:
while True:
- x = next(self.it)
+ x = self.it.next()
depth_exceeded = len(self.path) + 1 > self.depth
if self.depth and depth_exceeded:
continue
self.itlist.append(self.it)
self.path.append(x[0])
- self.it = iter(x[1]['children'].items())
+ self.it = x[1]['children'].iteritems()
break
except StopIteration:
@@ -68,7 +68,7 @@
def __init__(self, path_tree, subtree, depth):
super(PathTreeKeyIterator, self).__init__(path_tree, subtree, depth)
- def __next__(self):
+ def next(self):
return super(PathTreeKeyIterator, self).next()[0]
@@ -92,7 +92,7 @@
def _get_node(self, key):
kids = 'children'
- elements = ['/'] + list(filter(bool, key.split('/')))
+ elements = ['/'] + filter(bool, key.split('/'))
d = self.root
for k in elements[:-1]:
try:
@@ -106,14 +106,14 @@
return self
def __missing__(self, key):
- for x in self.keys():
+ for x in self.iterkeys():
if key == x:
return False
return True
def __delitem__(self, key):
kids = 'children'
- elements = ['/'] + list(filter(bool, key.split('/')))
+ elements = ['/'] + filter(bool, key.split('/'))
d = self.root
for k in elements[:-1]:
try:
@@ -126,7 +126,7 @@
def __setitem__(self, key, value):
kids = 'children'
- elements = ['/'] + list(filter(bool, key.split('/')))
+ elements = ['/'] + filter(bool, key.split('/'))
d = self.root
for k in elements[:-1]:
d = d.setdefault(k, {kids: {}})[kids]
@@ -152,7 +152,7 @@
return x
def get_children(self, key):
- return [x for x in self._get_node(key)['children'].keys()]
+ return [x for x in self._get_node(key)['children'].iterkeys()]
def demote(self, key):
n = self._get_node(key)
@@ -174,12 +174,12 @@
def iterkeys(self, subtree='/', depth=None):
if not self.root:
- return iter({}.keys())
+ return {}.iterkeys()
return PathTreeKeyIterator(self, subtree, depth)
def iteritems(self, subtree='/', depth=None):
if not self.root:
- return iter({}.items())
+ return {}.iteritems()
return PathTreeItemIterator(self, subtree, depth)
def dumpd(self, subtree='/'):
@@ -187,7 +187,7 @@
d = result
for k, v in self.iteritems(subtree):
- elements = ['/'] + list(filter(bool, k.split('/')))
+ elements = ['/'] + filter(bool, k.split('/'))
d = result
for k in elements:
d = d.setdefault(k, {})