From 886408b4e223694db4c3288643d55d4a382e5d67 Mon Sep 17 00:00:00 2001 From: Victor Uriarte Date: Fri, 10 Jun 2016 18:34:06 -0700 Subject: Remove unneded code from sql.py Remove HACK code. Code is now properly updated --- sqlparse/sql.py | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) (limited to 'sqlparse/sql.py') diff --git a/sqlparse/sql.py b/sqlparse/sql.py index daa5cf5..ced18af 100644 --- a/sqlparse/sql.py +++ b/sqlparse/sql.py @@ -248,8 +248,6 @@ class TokenList(Token): If *skip_ws* is ``True`` (the default) whitespace tokens are ignored. ``None`` is returned if there's no previous token. """ - if isinstance(idx, int): - idx += 1 # alot of code usage current pre-compensates for this funcs = lambda tk: not ((skip_ws and tk.is_whitespace()) or (skip_cm and imt(tk, t=T.Comment))) return self._token_matching(funcs, idx, reverse=True) @@ -260,8 +258,6 @@ class TokenList(Token): If *skip_ws* is ``True`` (the default) whitespace tokens are ignored. ``None`` is returned if there's no next token. """ - if isinstance(idx, int): - idx += 1 # alot of code usage current pre-compensates for this funcs = lambda tk: not ((skip_ws and tk.is_whitespace()) or (skip_cm and imt(tk, t=T.Comment))) return self._token_matching(funcs, idx) @@ -435,19 +431,13 @@ class Identifier(TokenList): def get_typecast(self): """Returns the typecast or ``None`` of this object as a string.""" marker = self.token_next_by(m=(T.Punctuation, '::')) - if marker is None: - return None next_ = self.token_next(marker, False) - if next_ is None: - return None - return next_.value + return next_.value if next_ else None def get_ordering(self): """Returns the ordering or ``None`` as uppercase string.""" ordering = self.token_next_by(t=T.Keyword.Order) - if ordering is None: - return None - return ordering.normalized + return ordering.normalized if ordering else None def get_array_indices(self): """Returns an iterator of index token lists""" -- cgit v1.2.1 From 0c468f5947741c0583330535e62c361f3a6af5ed Mon Sep 17 00:00:00 2001 From: Victor Uriarte Date: Fri, 10 Jun 2016 18:53:15 -0700 Subject: Fix get_token_at_offset behavior at edge At position 6 (with an index starting at 0) it should have been on 2nd word for the example sql='select * from dual' --- sqlparse/sql.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sqlparse/sql.py') diff --git a/sqlparse/sql.py b/sqlparse/sql.py index ced18af..a84dbf3 100644 --- a/sqlparse/sql.py +++ b/sqlparse/sql.py @@ -167,7 +167,7 @@ class TokenList(Token): idx = 0 for token in self.flatten(): end = idx + len(token.value) - if idx <= offset <= end: + if idx <= offset < end: return token idx = end -- cgit v1.2.1 From 14accd01db6171be5d12551a1c0586d1632e7fc2 Mon Sep 17 00:00:00 2001 From: Victor Uriarte Date: Sun, 5 Jun 2016 18:25:52 -0700 Subject: Refactor sql.py group_tokens first token in group had no parents and almost became batman --- sqlparse/sql.py | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) (limited to 'sqlparse/sql.py') 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*.""" -- cgit v1.2.1 From ba417700f78b94b06afd6f199ea403b74436623d Mon Sep 17 00:00:00 2001 From: Victor Uriarte Date: Sun, 5 Jun 2016 19:41:39 -0700 Subject: Refactor sql.py insert_after --- sqlparse/sql.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sqlparse/sql.py') diff --git a/sqlparse/sql.py b/sqlparse/sql.py index 87354a1..eadd04f 100644 --- a/sqlparse/sql.py +++ b/sqlparse/sql.py @@ -310,7 +310,7 @@ class TokenList(Token): if next_token is None: self.tokens.append(token) else: - self.tokens.insert(self.token_index(next_token), token) + self.insert_before(next_token, token) def has_alias(self): """Returns ``True`` if an alias is present.""" -- cgit v1.2.1