@@ -62,16 +62,20 @@ def from_tokens(cls, tokens):
62
62
def data_tokens (self ):
63
63
return [t for t in self .tokens if t .type not in Token .NON_DATA_TOKENS ]
64
64
65
- def _value (self , type ):
65
+ def get_value (self , type , default = None ):
66
+ token = self .get_token (type )
67
+ return token .value if token else default
68
+
69
+ def get_token (self , type ):
66
70
for t in self .tokens :
67
71
if t .type == type :
68
- return t . value
72
+ return t
69
73
return None
70
74
71
- def _values (self , * types ):
75
+ def get_values (self , * types ):
72
76
return [t .value for t in self .tokens if t .type in types ]
73
77
74
- def _tokens (self , * types ):
78
+ def get_tokens (self , * types ):
75
79
return [t for t in self .tokens if t .type in types ]
76
80
77
81
@property
@@ -126,7 +130,7 @@ class SingleValue(Statement):
126
130
127
131
@property
128
132
def value (self ):
129
- values = self ._values (Token .ARGUMENT )
133
+ values = self .get_values (Token .ARGUMENT )
130
134
if values and values [0 ].upper () != 'NONE' :
131
135
return values [0 ]
132
136
return None
@@ -136,18 +140,18 @@ class MultiValue(Statement):
136
140
137
141
@property
138
142
def values (self ):
139
- return tuple (self ._values (Token .ARGUMENT ))
143
+ return tuple (self .get_values (Token .ARGUMENT ))
140
144
141
145
142
146
class Fixture (Statement ):
143
147
144
148
@property
145
149
def name (self ):
146
- return self ._value (Token .ARGUMENT )
150
+ return self .get_value (Token .ARGUMENT )
147
151
148
152
@property
149
153
def args (self ):
150
- return tuple (self ._values (Token .ARGUMENT )[1 :])
154
+ return tuple (self .get_values (Token .ARGUMENT )[1 :])
151
155
152
156
153
157
@Statement .register
@@ -181,7 +185,7 @@ class LibraryImport(Statement):
181
185
182
186
@property
183
187
def name (self ):
184
- return self ._value (Token .ARGUMENT )
188
+ return self .get_value (Token .ARGUMENT )
185
189
186
190
@property
187
191
def args (self ):
@@ -192,7 +196,7 @@ def alias(self):
192
196
return self ._get_args_and_alias ()[1 ]
193
197
194
198
def _get_args_and_alias (self ):
195
- args = tuple (self ._values (Token .ARGUMENT )[1 :])
199
+ args = tuple (self .get_values (Token .ARGUMENT )[1 :])
196
200
if len (args ) > 1 and normalize_whitespace (args [- 2 ]) == 'WITH NAME' :
197
201
return args [:- 2 ], args [- 1 ]
198
202
return args , None
@@ -204,7 +208,7 @@ class ResourceImport(Statement):
204
208
205
209
@property
206
210
def name (self ):
207
- return self ._value (Token .ARGUMENT )
211
+ return self .get_value (Token .ARGUMENT )
208
212
209
213
210
214
@Statement .register
@@ -213,11 +217,11 @@ class VariablesImport(Statement):
213
217
214
218
@property
215
219
def name (self ):
216
- return self ._value (Token .ARGUMENT )
220
+ return self .get_value (Token .ARGUMENT )
217
221
218
222
@property
219
223
def args (self ):
220
- return self ._values (Token .ARGUMENT )[1 :]
224
+ return self .get_values (Token .ARGUMENT )[1 :]
221
225
222
226
223
227
@Statement .register
@@ -226,7 +230,7 @@ class Documentation(DocumentationOrMetadata):
226
230
227
231
@property
228
232
def value (self ):
229
- tokens = self ._tokens (Token .ARGUMENT )
233
+ tokens = self .get_tokens (Token .ARGUMENT )
230
234
return self ._join_value (tokens )
231
235
232
236
@@ -236,11 +240,11 @@ class Metadata(DocumentationOrMetadata):
236
240
237
241
@property
238
242
def name (self ):
239
- return self ._value (Token .ARGUMENT )
243
+ return self .get_value (Token .ARGUMENT )
240
244
241
245
@property
242
246
def value (self ):
243
- tokens = self ._tokens (Token .ARGUMENT )[1 :]
247
+ tokens = self .get_tokens (Token .ARGUMENT )[1 :]
244
248
return self ._join_value (tokens )
245
249
246
250
@@ -290,14 +294,14 @@ class Variable(Statement):
290
294
291
295
@property
292
296
def name (self ):
293
- name = self ._value (Token .VARIABLE )
297
+ name = self .get_value (Token .VARIABLE )
294
298
if name .endswith ('=' ):
295
299
return name [:- 1 ].rstrip ()
296
300
return name
297
301
298
302
@property
299
303
def value (self ):
300
- return self ._values (Token .ARGUMENT )
304
+ return self .get_values (Token .ARGUMENT )
301
305
302
306
303
307
@Statement .register
@@ -306,7 +310,7 @@ class Name(Statement):
306
310
307
311
@property
308
312
def name (self ):
309
- return self ._value (Token .NAME )
313
+ return self .get_value (Token .NAME )
310
314
311
315
312
316
@Statement .register
@@ -350,15 +354,15 @@ class KeywordCall(Statement):
350
354
351
355
@property
352
356
def keyword (self ):
353
- return self ._value (Token .KEYWORD )
357
+ return self .get_value (Token .KEYWORD )
354
358
355
359
@property
356
360
def args (self ):
357
- return tuple (self ._values (Token .ARGUMENT ))
361
+ return tuple (self .get_values (Token .ARGUMENT ))
358
362
359
363
@property
360
364
def assign (self ):
361
- return tuple (self ._values (Token .ASSIGN ))
365
+ return tuple (self .get_values (Token .ASSIGN ))
362
366
363
367
364
368
@Statement .register
@@ -367,7 +371,7 @@ class TemplateArguments(Statement):
367
371
368
372
@property
369
373
def args (self ):
370
- return self ._values (self .type )
374
+ return self .get_values (self .type )
371
375
372
376
373
377
@Statement .register
@@ -388,7 +392,7 @@ def values(self):
388
392
389
393
@property
390
394
def flavor (self ):
391
- value = self ._value (Token .FOR_SEPARATOR )
395
+ value = self .get_value (Token .FOR_SEPARATOR )
392
396
return normalize_whitespace (value ) if value is not None else None
393
397
394
398
@property
0 commit comments