diff options
author | Andi Albrecht <albrecht.andi@gmail.com> | 2014-03-31 20:14:55 +0200 |
---|---|---|
committer | Andi Albrecht <albrecht.andi@gmail.com> | 2015-01-17 09:26:32 +0100 |
commit | 50ad9d3ad2810ff39ee87c8d36f3bee46a6ca0f3 (patch) | |
tree | d13e34a09e50d3c00e38d2401d0f27ce27ccb8c5 /sqlparse/sql.py | |
parent | 2898498465baf21ba983b7cbdcfc6408bfaa12c0 (diff) | |
download | sqlparse-50ad9d3ad2810ff39ee87c8d36f3bee46a6ca0f3.tar.gz |
Migrate to six and get rid of 2to3.
Now we've got really a single code base for both Python 2 and 3.
For now it just adds a dependency to six which should be available
on most systems. However, if it turns out to switch back to
no dependencies it should be fairly easy to replace six by
some conditional imports.
Diffstat (limited to 'sqlparse/sql.py')
-rw-r--r-- | sqlparse/sql.py | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/sqlparse/sql.py b/sqlparse/sql.py index 0fe92c7..f3a4820 100644 --- a/sqlparse/sql.py +++ b/sqlparse/sql.py @@ -5,6 +5,8 @@ import re import sys +import six + from sqlparse import tokens as T @@ -32,7 +34,7 @@ class Token(object): if sys.version_info[0] == 3: return self.value else: - return unicode(self).encode('utf-8') + return six.text_type(self).encode('utf-8') def __repr__(self): short = self._get_repr_value() @@ -51,15 +53,15 @@ class Token(object): .. deprecated:: 0.1.5 Use ``unicode(token)`` (for Python 3: ``str(token)``) instead. """ - return unicode(self) + return six.text_type(self) def _get_repr_name(self): return str(self.ttype).split('.')[-1] def _get_repr_value(self): - raw = unicode(self) + raw = six.text_type(self) if len(raw) > 7: - raw = raw[:6] + u'...' + raw = raw[:6] + six.text_type('...') return re.sub('\s+', ' ', raw) def flatten(self): @@ -83,7 +85,7 @@ class Token(object): return type_matched if regex: - if isinstance(values, basestring): + if isinstance(values, six.string_types): values = set([values]) if self.ttype is T.Keyword: @@ -96,7 +98,7 @@ class Token(object): return True return False - if isinstance(values, basestring): + if isinstance(values, six.string_types): if self.is_keyword: return values.upper() == self.normalized return values == self.value @@ -172,7 +174,7 @@ class TokenList(Token): if sys.version_info[0] == 3: return ''.join(x.value for x in self.flatten()) else: - return ''.join(unicode(x) for x in self.flatten()) + return ''.join(six.text_type(x) for x in self.flatten()) def _get_repr_name(self): return self.__class__.__name__ @@ -185,9 +187,9 @@ class TokenList(Token): pre = ' +-' else: pre = ' | ' - print '%s%s%d %s \'%s\'' % (indent, pre, idx, + print('%s%s%d %s \'%s\'' % (indent, pre, idx, token._get_repr_name(), - token._get_repr_value()) + token._get_repr_value())) if (token.is_group() and (max_depth is None or depth < max_depth)): token._pprint_tree(max_depth, depth + 1) @@ -272,7 +274,7 @@ class TokenList(Token): if not isinstance(idx, int): idx = self.token_index(idx) - for n in xrange(idx, len(self.tokens)): + for n in range(idx, len(self.tokens)): token = self.tokens[n] if token.match(ttype, value, regex): return token @@ -396,7 +398,7 @@ class TokenList(Token): alias = next_ if isinstance(alias, Identifier): return alias.get_name() - return self._remove_quotes(unicode(alias)) + return self._remove_quotes(six.text_type(alias)) def get_name(self): """Returns the name of this identifier. @@ -485,7 +487,7 @@ class Identifier(TokenList): next_ = self.token_next(self.token_index(marker), False) if next_ is None: return None - return unicode(next_) + return six.text_type(next_) def get_ordering(self): """Returns the ordering or ``None`` as uppercase string.""" |