From 50ad9d3ad2810ff39ee87c8d36f3bee46a6ca0f3 Mon Sep 17 00:00:00 2001 From: Andi Albrecht Date: Mon, 31 Mar 2014 20:14:55 +0200 Subject: 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. --- sqlparse/sql.py | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) (limited to 'sqlparse/sql.py') 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.""" -- cgit v1.2.1