Skip to content

Commit 14accd0

Browse files
committed
Refactor sql.py group_tokens
first token in group had no parents and almost became batman
1 parent 954f484 commit 14accd0

1 file changed

Lines changed: 11 additions & 19 deletions

File tree

sqlparse/sql.py

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -279,34 +279,26 @@ def tokens_between(self, start, end, include_end=True):
279279

280280
def group_tokens(self, grp_cls, tokens, skip_ws=False, extend=False):
281281
"""Replace tokens by an instance of *grp_cls*."""
282-
if skip_ws:
283-
while tokens and tokens[-1].is_whitespace():
284-
tokens = tokens[:-1]
282+
283+
while skip_ws and tokens and tokens[-1].is_whitespace():
284+
tokens = tokens[:-1]
285285

286286
left = tokens[0]
287287
idx = self.token_index(left)
288288

289-
if extend:
290-
if not isinstance(left, grp_cls):
291-
grp = grp_cls([left])
292-
self.tokens.remove(left)
293-
self.tokens.insert(idx, grp)
294-
left = grp
295-
left.parent = self
296-
tokens = tokens[1:]
297-
left.tokens.extend(tokens)
298-
left.value = str(left)
299-
289+
if extend and isinstance(left, grp_cls):
290+
grp = left
291+
grp.tokens.extend(tokens[1:])
300292
else:
301-
left = grp_cls(tokens)
302-
left.parent = self
303-
self.tokens.insert(idx, left)
293+
grp = grp_cls(tokens)
304294

305295
for token in tokens:
306-
token.parent = left
296+
token.parent = grp
307297
self.tokens.remove(token)
308298

309-
return left
299+
self.tokens.insert(idx, grp)
300+
grp.parent = self
301+
return grp
310302

311303
def insert_before(self, where, token):
312304
"""Inserts *token* before *where*."""

0 commit comments

Comments
 (0)