@@ -75,6 +75,10 @@ def check_visitor_fn_args(ast, node, key, parent, path, ancestors, is_edited=Fal
75
75
assert getattr (parent , key ) is node
76
76
77
77
78
+ def get_value (node ):
79
+ return getattr (node , "value" , None )
80
+
81
+
78
82
def describe_visitor ():
79
83
def validates_path_argument ():
80
84
ast = parse ("{ a }" , no_location = True )
@@ -219,15 +223,15 @@ class TestVisitor(Visitor):
219
223
def enter (self , * args ):
220
224
check_visitor_fn_args (ast , * args )
221
225
node = args [0 ]
222
- kind , value = node .kind , getattr (node , "value" , None )
226
+ kind , value = node .kind , get_value (node )
223
227
visited .append (["enter" , kind , value ])
224
228
if kind == "field" and node .name .value == "b" :
225
229
return SKIP
226
230
227
231
def leave (self , * args ):
228
232
check_visitor_fn_args (ast , * args )
229
233
node = args [0 ]
230
- kind , value = node .kind , getattr (node , "value" , None )
234
+ kind , value = node .kind , get_value (node )
231
235
visited .append (["leave" , kind , value ])
232
236
233
237
visit (ast , TestVisitor ())
@@ -258,15 +262,15 @@ class TestVisitor(Visitor):
258
262
def enter (self , * args ):
259
263
check_visitor_fn_args (ast , * args )
260
264
node = args [0 ]
261
- kind , value = node .kind , getattr (node , "value" , None )
265
+ kind , value = node .kind , get_value (node )
262
266
visited .append (["enter" , kind , value ])
263
267
if kind == "name" and node .value == "x" :
264
268
return BREAK
265
269
266
270
def leave (self , * args ):
267
271
check_visitor_fn_args (ast , * args )
268
272
node = args [0 ]
269
- kind , value = node .kind , getattr (node , "value" , None )
273
+ kind , value = node .kind , get_value (node )
270
274
visited .append (["leave" , kind , value ])
271
275
272
276
visit (ast , TestVisitor ())
@@ -295,13 +299,13 @@ class TestVisitor(Visitor):
295
299
def enter (self , * args ):
296
300
check_visitor_fn_args (ast , * args )
297
301
node = args [0 ]
298
- kind , value = node .kind , getattr (node , "value" , None )
302
+ kind , value = node .kind , get_value (node )
299
303
visited .append (["enter" , kind , value ])
300
304
301
305
def leave (self , * args ):
302
306
check_visitor_fn_args (ast , * args )
303
307
node = args [0 ]
304
- kind , value = node .kind , getattr (node , "value" , None )
308
+ kind , value = node .kind , get_value (node )
305
309
visited .append (["leave" , kind , value ])
306
310
if kind == "name" and node .value == "x" :
307
311
return BREAK
@@ -333,19 +337,19 @@ class TestVisitor(Visitor):
333
337
def enter_name (self , * args ):
334
338
check_visitor_fn_args (ast , * args )
335
339
node = args [0 ]
336
- kind , value = node .kind , getattr (node , "value" , None )
340
+ kind , value = node .kind , get_value (node )
337
341
visited .append (["enter" , kind , value ])
338
342
339
343
def enter_selection_set (self , * args ):
340
344
check_visitor_fn_args (ast , * args )
341
345
node = args [0 ]
342
- kind , value = node .kind , getattr (node , "value" , None )
346
+ kind , value = node .kind , get_value (node )
343
347
visited .append (["enter" , kind , value ])
344
348
345
349
def leave_selection_set (self , * args ):
346
350
check_visitor_fn_args (ast , * args )
347
351
node = args [0 ]
348
- kind , value = node .kind , getattr (node , "value" , None )
352
+ kind , value = node .kind , get_value (node )
349
353
visited .append (["leave" , kind , value ])
350
354
351
355
visit (ast , TestVisitor ())
@@ -373,13 +377,13 @@ class TestVisitor(Visitor):
373
377
def enter (self , * args ):
374
378
check_visitor_fn_args (ast , * args )
375
379
node = args [0 ]
376
- kind , value = node .kind , getattr (node , "value" , None )
380
+ kind , value = node .kind , get_value (node )
377
381
visited .append (["enter" , kind , value ])
378
382
379
383
def leave (self , * args ):
380
384
check_visitor_fn_args (ast , * args )
381
385
node = args [0 ]
382
- kind , value = node .kind , getattr (node , "value" , None )
386
+ kind , value = node .kind , get_value (node )
383
387
visited .append (["leave" , kind , value ])
384
388
385
389
visit (ast , TestVisitor ())
@@ -800,15 +804,15 @@ class TestVisitor(Visitor):
800
804
def enter (self , * args ):
801
805
check_visitor_fn_args (ast , * args )
802
806
node = args [0 ]
803
- kind , value = node .kind , getattr (node , "value" , None )
807
+ kind , value = node .kind , get_value (node )
804
808
visited .append (["enter" , kind , value ])
805
809
if kind == "field" and node .name .value == "b" :
806
810
return SKIP
807
811
808
812
def leave (self , * args ):
809
813
check_visitor_fn_args (ast , * args )
810
814
node = args [0 ]
811
- kind , value = node .kind , getattr (node , "value" , None )
815
+ kind , value = node .kind , get_value (node )
812
816
visited .append (["leave" , kind , value ])
813
817
814
818
visit (ast , ParallelVisitor ([TestVisitor ()]))
@@ -841,7 +845,7 @@ def __init__(self, name):
841
845
def enter (self , * args ):
842
846
check_visitor_fn_args (ast , * args )
843
847
node = args [0 ]
844
- kind , value = node .kind , getattr (node , "value" , None )
848
+ kind , value = node .kind , get_value (node )
845
849
name = self .name
846
850
visited .append ([f"no-{ name } " , "enter" , kind , value ])
847
851
if kind == "field" and node .name .value == name :
@@ -850,7 +854,7 @@ def enter(self, *args):
850
854
def leave (self , * args ):
851
855
check_visitor_fn_args (ast , * args )
852
856
node = args [0 ]
853
- kind , value = node .kind , getattr (node , "value" , None )
857
+ kind , value = node .kind , get_value (node )
854
858
name = self .name
855
859
visited .append ([f"no-{ name } " , "leave" , kind , value ])
856
860
@@ -902,15 +906,15 @@ class TestVisitor(Visitor):
902
906
def enter (self , * args ):
903
907
check_visitor_fn_args (ast , * args )
904
908
node = args [0 ]
905
- kind , value = node .kind , getattr (node , "value" , None )
909
+ kind , value = node .kind , get_value (node )
906
910
visited .append (["enter" , kind , value ])
907
911
if kind == "name" and node .value == "x" :
908
912
return BREAK
909
913
910
914
def leave (self , * args ):
911
915
check_visitor_fn_args (ast , * args )
912
916
node = args [0 ]
913
- kind , value = node .kind , getattr (node , "value" , None )
917
+ kind , value = node .kind , get_value (node )
914
918
visited .append (["leave" , kind , value ])
915
919
916
920
visit (ast , ParallelVisitor ([TestVisitor ()]))
@@ -941,7 +945,7 @@ def __init__(self, name):
941
945
def enter (self , * args ):
942
946
check_visitor_fn_args (ast , * args )
943
947
node = args [0 ]
944
- kind , value = node .kind , getattr (node , "value" , None )
948
+ kind , value = node .kind , get_value (node )
945
949
name = self .name
946
950
visited .append ([f"break-{ name } " , "enter" , kind , value ])
947
951
if kind == "name" and node .value == name :
@@ -950,7 +954,7 @@ def enter(self, *args):
950
954
def leave (self , * args ):
951
955
check_visitor_fn_args (ast , * args )
952
956
node = args [0 ]
953
- kind , value = node .kind , getattr (node , "value" , None )
957
+ kind , value = node .kind , get_value (node )
954
958
name = self .name
955
959
visited .append ([f"break-{ name } " , "leave" , kind , value ])
956
960
@@ -988,13 +992,13 @@ class TestVisitor(Visitor):
988
992
def enter (self , * args ):
989
993
check_visitor_fn_args (ast , * args )
990
994
node = args [0 ]
991
- kind , value = node .kind , getattr (node , "value" , None )
995
+ kind , value = node .kind , get_value (node )
992
996
visited .append (["enter" , kind , value ])
993
997
994
998
def leave (self , * args ):
995
999
check_visitor_fn_args (ast , * args )
996
1000
node = args [0 ]
997
- kind , value = node .kind , getattr (node , "value" , None )
1001
+ kind , value = node .kind , get_value (node )
998
1002
visited .append (["leave" , kind , value ])
999
1003
if kind == "name" and node .value == "x" :
1000
1004
return BREAK
@@ -1028,14 +1032,14 @@ def __init__(self, name):
1028
1032
def enter (self , * args ):
1029
1033
check_visitor_fn_args (ast , * args )
1030
1034
node = args [0 ]
1031
- kind , value = node .kind , getattr (node , "value" , None )
1035
+ kind , value = node .kind , get_value (node )
1032
1036
name = self .name
1033
1037
visited .append ([f"break-{ name } " , "enter" , kind , value ])
1034
1038
1035
1039
def leave (self , * args ):
1036
1040
check_visitor_fn_args (ast , * args )
1037
1041
node = args [0 ]
1038
- kind , value = node .kind , getattr (node , "value" , None )
1042
+ kind , value = node .kind , get_value (node )
1039
1043
name = self .name
1040
1044
visited .append ([f"break-{ name } " , "leave" , kind , value ])
1041
1045
if kind == "field" and node .name .value == name :
@@ -1098,13 +1102,13 @@ class TestVisitor2(Visitor):
1098
1102
def enter (self , * args ):
1099
1103
check_visitor_fn_args (ast , * args )
1100
1104
node = args [0 ]
1101
- kind , value = node .kind , getattr (node , "value" , None )
1105
+ kind , value = node .kind , get_value (node )
1102
1106
visited .append (["enter" , kind , value ])
1103
1107
1104
1108
def leave (self , * args ):
1105
1109
check_visitor_fn_args (ast , * args , is_edited = True )
1106
1110
node = args [0 ]
1107
- kind , value = node .kind , getattr (node , "value" , None )
1111
+ kind , value = node .kind , get_value (node )
1108
1112
visited .append (["leave" , kind , value ])
1109
1113
1110
1114
edited_ast = visit (ast , ParallelVisitor ([TestVisitor1 (), TestVisitor2 ()]))
@@ -1154,13 +1158,13 @@ class TestVisitor2(Visitor):
1154
1158
def enter (self , * args ):
1155
1159
check_visitor_fn_args (ast , * args )
1156
1160
node = args [0 ]
1157
- kind , value = node .kind , getattr (node , "value" , None )
1161
+ kind , value = node .kind , get_value (node )
1158
1162
visited .append (["enter" , kind , value ])
1159
1163
1160
1164
def leave (self , * args ):
1161
1165
check_visitor_fn_args (ast , * args , is_edited = True )
1162
1166
node = args [0 ]
1163
- kind , value = node .kind , getattr (node , "value" , None )
1167
+ kind , value = node .kind , get_value (node )
1164
1168
visited .append (["leave" , kind , value ])
1165
1169
1166
1170
edited_ast = visit (ast , ParallelVisitor ([TestVisitor1 (), TestVisitor2 ()]))
0 commit comments