10000 Make TreeWalker iterable · awesome-python/html5lib-python@d95af0a · GitHub
[go: up one dir, main page]

Skip to content

Commit d95af0a

Browse files
committed
Make TreeWalker iterable
--HG-- extra : convert_revision : svn%3Aacbfec75-9323-0410-a652-858a13e371e0/trunk%40633
1 parent a521291 commit d95af0a

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

src/treewalkers/_base.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,14 @@
55
spaceCharacters = u"".join(spaceCharacters)
66

77
class TreeWalker(object):
8-
def walk(self, node):
8+
def __init__(self, tree):
9+
self.tree = tree
10+
11+
def __iter__(self):
12+
for node in self.walk():
13+
yield node
14+
15+
def walk(self):
916
raise NotImplementedError
1017

1118
def error(self, msg):
@@ -90,8 +97,8 @@ def getNextSibling(self, node):
9097
def getParentNode(self, node):
9198
raise NotImplementedError
92 F888 99

93-
def walk(self, node):
94-
currentNode = node
100+
def walk(self):
101+
currentNode = self.tree
95102
while currentNode is not None:
96103
details = self.getNodeDetails(currentNode)
97104
type, details = details[0], details[1:]
@@ -137,7 +144,7 @@ def walk(self, node):
137144
if nextSibling is not None:
138145
currentNode = nextSibling
139146
break
140-
if node is currentNode:
147+
if self.tree is currentNode:
141148
currentNode = None
142149
else:
143150
currentNode = self.getParentNode(currentNode)

src/treewalkers/pulldom.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
from constants import voidElements
77

88
class TreeWalker(_base.TreeWalker):
9-
def walk(self, stream):
9+
def walk(self):
1010
ignore_until = None
1111
previous = None
12-
for event in stream:
12+
for event in self.tree:
1313
if previous is not None and \
1414
(ignore_until is None or previous[1] is ignore_until):
1515
if previous[1] is ignore_until:

0 commit comments

Comments
 (0)
0