diff options
author | Victor Uriarte <victor.m.uriarte@intel.com> | 2016-06-05 18:25:52 -0700 |
---|---|---|
committer | Victor Uriarte <victor.m.uriarte@intel.com> | 2016-06-11 04:36:56 -0700 |
commit | 14accd01db6171be5d12551a1c0586d1632e7fc2 (patch) | |
tree | 41dd5aee698cee8d6eb16c8935afa3ad6f0ccb29 | |
parent | 954f48431a0fe8ea1749ba0236da23a705bf3b75 (diff) | |
download | sqlparse-14accd01db6171be5d12551a1c0586d1632e7fc2.tar.gz |
Refactor sql.py group_tokens
first token in group had no parents
and almost became batman
-rw-r--r-- | sqlparse/sql.py | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/sqlparse/sql.py b/sqlparse/sql.py index a84dbf3..87354a1 100644 --- a/sqlparse/sql.py +++ b/sqlparse/sql.py @@ -279,34 +279,26 @@ class TokenList(Token): def group_tokens(self, grp_cls, tokens, skip_ws=False, extend=False): """Replace tokens by an instance of *grp_cls*.""" - if skip_ws: - while tokens and tokens[-1].is_whitespace(): - tokens = tokens[:-1] + + while skip_ws and tokens and tokens[-1].is_whitespace(): + tokens = tokens[:-1] left = tokens[0] idx = self.token_index(left) - if extend: - if not isinstance(left, grp_cls): - grp = grp_cls([left]) - self.tokens.remove(left) - self.tokens.insert(idx, grp) - left = grp - left.parent = self - tokens = tokens[1:] - left.tokens.extend(tokens) - left.value = str(left) - + if extend and isinstance(left, grp_cls): + grp = left + grp.tokens.extend(tokens[1:]) else: - left = grp_cls(tokens) - left.parent = self - self.tokens.insert(idx, left) + grp = grp_cls(tokens) for token in tokens: - token.parent = left + token.parent = grp self.tokens.remove(token) - return left + self.tokens.insert(idx, grp) + grp.parent = self + return grp def insert_before(self, where, token): """Inserts *token* before *where*.""" |