File tree 2 files changed +8
-12
lines changed
2 files changed +8
-12
lines changed Original file line number Diff line number Diff line change @@ -10,8 +10,8 @@ class Visitor(object):
10
10
To generally define which nodes not to descend in to, overload
11
11
`generic_visit`.
12
12
To handle specific node types, add methods like `visit_Pattern`.
13
- The boolean value of the returned value determines if the visitor
14
- descends into the children of the given AST node .
13
+ If you want to still descend into the children of the node, call
14
+ `generic_visit` of the superclass .
15
15
'''
16
16
def visit (self , node ):
17
17
if isinstance (node , list ):
@@ -22,14 +22,11 @@ def visit(self, node):
22
22
return
23
23
nodename = type (node ).__name__
24
24
visit = getattr (self , 'visit_{}' .format (nodename ), self .generic_visit )
25
- should_descend = visit (node )
26
- if not should_descend :
27
- return
28
- for propname , propvalue in vars (node ).items ():
29
- self .visit (propvalue )
25
+ visit (node )
30
26
31
27
def generic_visit (self , node ):
32
- return True
28
+ for propname , propvalue in vars (node ).items ():
29
+ self .visit (propvalue )
33
30
34
31
35
32
class Transformer (Visitor ):
Original file line number Diff line number Diff line change @@ -18,11 +18,10 @@ def __init__(self):
18
18
19
19
def generic_visit (self , node ):
20
20
self .calls [type (node ).__name__ ] += 1
21
- return super (MockVisitor , self ).generic_visit (node )
21
+ super (MockVisitor , self ).generic_visit (node )
22
22
23
23
def visit_Pattern (self , node ):
24
24
self .pattern_calls += 1
25
- return False
26
25
27
26
28
27
class TestVisitor (unittest .TestCase ):
@@ -87,11 +86,11 @@ def __init__(self):
87
86
self .word_count = 0
88
87
89
88
def generic_visit (self , node ):
90
- return not isinstance (node , (ast .Span , ast .Annotation ))
89
+ if not isinstance (node , (ast .Span , ast .Annotation )):
90
+ super (VisitorCounter , self ).generic_visit (node )
91
91
92
92
def visit_TextElement (self , node ):
93
93
self .word_count += len (node .value .split ())
94
- return False
95
94
96
95
97
96
class ReplaceText (object ):
You can’t perform that action at this time.
0 commit comments