50
50
strip_variable_token ,
51
51
tokenize_variables ,
52
52
)
53
- from ..utils .async_ast import AsyncVisitor
53
+ from ..utils .async_ast import Visitor
54
54
from ..utils .match import eq
55
55
from ..utils .variables import BUILTIN_VARIABLES
56
56
from ..utils .version import get_robot_version
@@ -97,20 +97,20 @@ class NameSpaceError(Exception):
97
97
pass
98
98
99
99
100
- class VariablesVisitor (AsyncVisitor ):
101
- async def get (self , source : str , model : ast .AST ) -> List [VariableDefinition ]:
100
+ class VariablesVisitor (Visitor ):
101
+ def get (self , source : str , model : ast .AST ) -> List [VariableDefinition ]:
102
102
self ._results : List [VariableDefinition ] = []
103
103
self .source = source
104
- await self .visit (model )
104
+ self .visit (model )
105
105
return self ._results
106
106
107
- async def visit_Section (self , node : ast .AST ) -> None : # noqa: N802
107
+ def visit_Section (self , node : ast .AST ) -> None : # noqa: N802
108
108
from robot .parsing .model .blocks import VariableSection
109
109
110
110
if isinstance (node , VariableSection ):
111
- await self .generic_visit (node )
111
+ self .generic_visit (node )
112
112
113
- async def visit_Variable (self , node : ast .AST ) -> None : # noqa: N802
113
+ def visit_Variable (self , node : ast .AST ) -> None : # noqa: N802
114
114
from robot .parsing .lexer .tokens import Token as RobotToken
115
115
from robot .parsing .model .statements import Variable
116
116
from robot .variables import search_variable
@@ -152,38 +152,38 @@ async def visit_Variable(self, node: ast.AST) -> None: # noqa: N802
152
152
)
153
153
154
154
155
- class BlockVariableVisitor (AsyncVisitor ):
155
+ class BlockVariableVisitor (Visitor ):
156
156
def __init__ (
157
- self , namespace : Namespace , source : str , position : Optional [Position ] = None , in_args : bool = True
157
+ self , library_doc : LibraryDoc , source : str , position : Optional [Position ] = None , in_args : bool = True
158
158
) -> None :
159
159
super ().__init__ ()
160
- self .namespace = namespace
160
+ self .library_doc = library_doc
161
161
self .source = source
162
162
self .position = position
163
163
self .in_args = in_args
164
164
165
165
self ._results : Dict [str , VariableDefinition ] = {}
166
166
self .current_kw_doc : Optional [KeywordDoc ] = None
167
167
168
- async def get (self , model : ast .AST ) -> List [VariableDefinition ]:
168
+ def get (self , model : ast .AST ) -> List [VariableDefinition ]:
169
169
170
170
self ._results = {}
171
171
172
- await self .visit (model )
172
+ self .visit (model )
173
173
174
174
return list (self ._results .values ())
175
175
176
- async def visit (self , node : ast .AST ) -> None :
176
+ def visit (self , node : ast .AST ) -> None :
177
177
if self .position is None or self .position >= range_from_node (node ).start :
178
- return await super ().visit (node )
178
+ return super ().visit (node )
179
179
180
- async def visit_Keyword (self , node : ast .AST ) -> None : # noqa: N802
180
+ def visit_Keyword (self , node : ast .AST ) -> None : # noqa: N802
181
181
try :
182
- await self .generic_visit (node )
182
+ self .generic_visit (node )
183
183
finally :
184
184
self .current_kw_doc = None
185
185
186
- async def visit_KeywordName (self , node : ast .AST ) -> None : # noqa: N802
186
+ def visit_KeywordName (self , node : ast .AST ) -> None : # noqa: N802
187
187
from robot .parsing .lexer .tokens import Token as RobotToken
188
188
from robot .parsing .model .statements import KeywordName
189
189
from robot .variables .search import search_variable
@@ -194,7 +194,8 @@ async def visit_KeywordName(self, node: ast.AST) -> None: # noqa: N802
194
194
name_token = cast (Token , n .get_token (RobotToken .KEYWORD_NAME ))
195
195
196
196
if name_token is not None and name_token .value :
197
- keyword = await ModelHelperMixin .get_keyword_definition_at_token (self .namespace , name_token )
197
+
198
+ keyword = ModelHelperMixin .get_keyword_definition_at_token (self .library_doc , name_token )
198
199
self .current_kw_doc = keyword
199
200
200
201
for variable_token in filter (
@@ -236,7 +237,7 @@ def get_variable_token(self, token: Token) -> Optional[Token]:
236
237
None ,
237
238
)
238
239
239
- async def visit_Arguments (self , node : ast .AST ) -> None : # noqa: N802
240
+ def visit_Arguments (self , node : ast .AST ) -> None : # noqa: N802
240
241
from robot .errors import VariableError
241
242
from robot .parsing .lexer .tokens import Token as RobotToken
242
243
from robot .parsing .model .statements import Arguments
@@ -280,7 +281,7 @@ async def visit_Arguments(self, node: ast.AST) -> None: # noqa: N802
280
281
if self .current_kw_doc is not None :
281
282
self .current_kw_doc .argument_definitions = argument_definitions
282
283
283
- async def visit_ExceptHeader (self , node : ast .AST ) -> None : # noqa: N802
284
+ def visit_ExceptHeader (self , node : ast .AST ) -> None : # noqa: N802
284
285
from robot .errors import VariableError
285
286
from robot .parsing .lexer .tokens import Token as RobotToken
286
287
from robot .parsing .model .statements import ExceptHeader
@@ -306,7 +307,7 @@ async def visit_ExceptHeader(self, node: ast.AST) -> None: # noqa: N802
306
307
except VariableError :
307
308
pass
308
309
309
- async def visit_KeywordCall (self , node : ast .AST ) -> None : # noqa: N802
310
+ def visit_KeywordCall (self , node : ast .AST ) -> None : # noqa: N802
310
311
from robot .errors import VariableError
311
312
from robot .parsing .lexer .tokens import Token as RobotToken
312
313
from robot .parsing .model .statements import KeywordCall
@@ -341,7 +342,7 @@ async def visit_KeywordCall(self, node: ast.AST) -> None: # noqa: N802
341
342
except VariableError :
342
343
pass
343
344
344
- async def visit_InlineIfHeader (self , node : ast .AST ) -> None : # noqa: N802
345
+ def visit_InlineIfHeader (self , node : ast .AST ) -> None : # noqa: N802
345
346
from robot .errors import VariableError
346
347
from robot .parsing .lexer .tokens import Token as RobotToken
347
348
from robot .parsing .model .statements import InlineIfHeader
@@ -374,7 +375,7 @@ async def visit_InlineIfHeader(self, node: ast.AST) -> None: # noqa: N802
374
375
except VariableError :
375
376
pass
376
377
377
- async def visit_ForHeader (self , node : ast .AST ) -> None : # noqa: N802
378
+ def visit_ForHeader (self , node : ast .AST ) -> None : # noqa: N802
378
379
from robot .parsing .lexer .tokens import Token as RobotToken
379
380
from robot .parsing .model .statements import ForHeader
380
381
@@ -394,20 +395,20 @@ async def visit_ForHeader(self, node: ast.AST) -> None: # noqa: N802
394
395
)
395
396
396
397
397
- class ImportVisitor (AsyncVisitor ):
398
- async def get (self , source : str , model : ast .AST ) -> List [Import ]:
398
+ class ImportVisitor (Visitor ):
399
+ def get (self , source : str , model : ast .AST ) -> List [Import ]:
399
400
self ._results : List [Import ] = []
400
401
self .source = source
401
- await self .visit (model )
402
+ self .visit (model )
402
403
return self ._results
403
404
404
- async def visit_Section (self , node : ast .AST ) -> None : # noqa: N802
405
+ def visit_Section (self , node : ast .AST ) -> None : # noqa: N802
405
406
from robot .parsing .model .blocks import SettingSection
406
407
407
408
if isinstance (node , SettingSection ):
408
- await self .generic_visit (node )
409
+ self .generic_visit (node )
409
410
410
- async def visit_LibraryImport (self , node : ast .AST ) -> None : # noqa: N802
411
+ def visit_LibraryImport (self , node : ast .AST ) -> None : # noqa: N802
411
412
from robot .parsing .lexer .tokens import Token as RobotToken
412
413
from robot .parsing .model .statements import LibraryImport as RobotLibraryImport
413
414
@@ -440,7 +441,7 @@ async def visit_LibraryImport(self, node: ast.AST) -> None: # noqa: N802
440
441
)
441
442
)
442
443
443
- async def visit_ResourceImport (self , node : ast .AST ) -> None : # noqa: N802
444
+ def visit_ResourceImport (self , node : ast .AST ) -> None : # noqa: N802
444
445
from robot .parsing .lexer .tokens import Token as RobotToken
445
446
from robot .parsing .model .statements import ResourceImport as RobotResourceImport
446
447
@@ -470,7 +471,7 @@ async def visit_ResourceImport(self, node: ast.AST) -> None: # noqa: N802
470
471
)
471
472
)
472
473
473
- async def visit_VariablesImport (self , node : ast .AST ) -> None : # noqa: N802
474
+ def visit_VariablesImport (self , node : ast .AST ) -> None : # noqa: N802
474
475
from robot .parsing .lexer .tokens import Token as RobotToken
475
476
from robot .parsing .model .statements import (
476
477
VariablesImport as RobotVariablesImport ,
@@ -864,15 +865,15 @@ def initialized(self) -> bool:
864
865
@_logger .call
865
866
async def get_imports (self ) -> List [Import ]:
866
867
if self ._imports is None :
867
- self ._imports = await ImportVisitor ().get (self .source , self .model )
868
+ self ._imports = ImportVisitor ().get (self .source , self .model )
868
869
869
870
return self ._imports
870
871
871
872
@_logger .call
872
873
async def get_own_variables (self ) -> List [VariableDefinition ]:
873
874
async with self ._own_variables_lock :
874
875
if self ._own_variables is None :
875
- self ._own_variables = await VariablesVisitor ().get (self .source , self .model )
876
+ self ._own_variables = VariablesVisitor ().get (self .source , self .model )
876
877
877
878
return self ._own_variables
878
879
@@ -927,8 +928,8 @@ async def yield_variables(
927
928
for var in chain (
928
929
* [
929
930
(
930
- await BlockVariableVisitor (
931
- self ,
931
+ BlockVariableVisitor (
932
+ await self . get_library_doc () ,
932
933
self .source ,
933
934
position ,
934
935
isinstance (test_or_keyword_nodes [- 1 ], Arguments ) if nodes else False ,
0 commit comments