diff options
| author | Oleg Broytman <phd@phdru.name> | 2016-08-29 21:36:15 +0300 |
|---|---|---|
| committer | Oleg Broytman <phd@phdru.name> | 2016-08-31 16:09:36 +0300 |
| commit | b05bc5ab586cb06d89c38e2eee7f77e1d3fc03c5 (patch) | |
| tree | 2510e36ffc9f911032ade6de88a62bffa51d37b8 /sqlparse | |
| parent | 791a3312a247670cdeed61e52e8ca449dbb27afa (diff) | |
| download | sqlparse-b05bc5ab586cb06d89c38e2eee7f77e1d3fc03c5.tar.gz | |
Convert string literals to unicode for Py27
Working with non-ascii in Python require all-unicode approach, but
str literals in Python 2.7 are bytes. The patch makes them unicode.
Syntax u'' is supported in Python 2.7 and 3.3+.
Diffstat (limited to 'sqlparse')
| -rw-r--r-- | sqlparse/__init__.py | 2 | ||||
| -rwxr-xr-x[-rw-r--r--] | sqlparse/cli.py | 9 | ||||
| -rw-r--r-- | sqlparse/filters/output.py | 2 | ||||
| -rw-r--r-- | sqlparse/filters/reindent.py | 2 | ||||
| -rw-r--r-- | sqlparse/sql.py | 12 |
5 files changed, 14 insertions, 13 deletions
diff --git a/sqlparse/__init__.py b/sqlparse/__init__.py index b5b8435..8aef5b1 100644 --- a/sqlparse/__init__.py +++ b/sqlparse/__init__.py @@ -57,7 +57,7 @@ def format(sql, encoding=None, **options): options = formatter.validate_options(options) stack = formatter.build_filter_stack(stack, options) stack.postprocess.append(filters.SerializerUnicode()) - return ''.join(stack.run(sql, encoding)) + return u''.join(stack.run(sql, encoding)) def split(sql, encoding=None): diff --git a/sqlparse/cli.py b/sqlparse/cli.py index 80d547d..c329fdb 100644..100755 --- a/sqlparse/cli.py +++ b/sqlparse/cli.py @@ -123,7 +123,7 @@ def create_parser(): def _error(msg): """Print msg and optionally exit with return code exit_.""" - sys.stderr.write('[ERROR] {0}\n'.format(msg)) + sys.stderr.write(u'[ERROR] {0}\n'.format(msg)) return 1 @@ -138,13 +138,14 @@ def main(args=None): # TODO: Needs to deal with encoding data = ''.join(open(args.filename).readlines()) except IOError as e: - return _error('Failed to read {0}: {1}'.format(args.filename, e)) + return _error( + u'Failed to read {0}: {1}'.format(args.filename, e)) if args.outfile: try: stream = open(args.outfile, 'w') except IOError as e: - return _error('Failed to open {0}: {1}'.format(args.outfile, e)) + return _error(u'Failed to open {0}: {1}'.format(args.outfile, e)) else: stream = sys.stdout @@ -152,7 +153,7 @@ def main(args=None): try: formatter_opts = sqlparse.formatter.validate_options(formatter_opts) except SQLParseError as e: - return _error('Invalid options: {0}'.format(e)) + return _error(u'Invalid options: {0}'.format(e)) s = sqlparse.format(data, **formatter_opts) if PY2: diff --git a/sqlparse/filters/output.py b/sqlparse/filters/output.py index 77a7ac8..a029251 100644 --- a/sqlparse/filters/output.py +++ b/sqlparse/filters/output.py @@ -22,7 +22,7 @@ class OutputFilter(object): def process(self, stmt): self.count += 1 if self.count > 1: - varname = '{f.varname}{f.count}'.format(f=self) + varname = u'{f.varname}{f.count}'.format(f=self) else: varname = self.varname diff --git a/sqlparse/filters/reindent.py b/sqlparse/filters/reindent.py index 3d93441..70f3936 100644 --- a/sqlparse/filters/reindent.py +++ b/sqlparse/filters/reindent.py @@ -36,7 +36,7 @@ class ReindentFilter(object): return self.offset + self.indent * self.width def _get_offset(self, token): - raw = ''.join(map(text_type, self._flatten_up_to_token(token))) + raw = u''.join(map(text_type, self._flatten_up_to_token(token))) line = (raw or '\n').splitlines()[-1] # Now take current offset into account and return relative offset. return len(line) - len(self.char * self.leading_ws) diff --git a/sqlparse/sql.py b/sqlparse/sql.py index f780090..06347a0 100644 --- a/sqlparse/sql.py +++ b/sqlparse/sql.py @@ -48,8 +48,8 @@ class Token(object): cls = self._get_repr_name() value = self._get_repr_value() - q = '"' if value.startswith("'") and value.endswith("'") else "'" - return "<{cls} {q}{value}{q} at 0x{id:2X}>".format( + q = u'"' if value.startswith("'") and value.endswith("'") else u"'" + return u"<{cls} {q}{value}{q} at 0x{id:2X}>".format( id=id(self), **locals()) def _get_repr_name(self): @@ -143,7 +143,7 @@ class TokenList(Token): self.is_group = True def __str__(self): - return ''.join(token.value for token in self.flatten()) + return u''.join(token.value for token in self.flatten()) # weird bug # def __len__(self): @@ -160,13 +160,13 @@ class TokenList(Token): def _pprint_tree(self, max_depth=None, depth=0, f=None): """Pretty-print the object tree.""" - indent = ' | ' * depth + indent = u' | ' * depth for idx, token in enumerate(self.tokens): cls = token._get_repr_name() value = token._get_repr_value() - q = '"' if value.startswith("'") and value.endswith("'") else "'" - print("{indent}{idx:2d} {cls} {q}{value}{q}" + q = u'"' if value.startswith("'") and value.endswith("'") else u"'" + print(u"{indent}{idx:2d} {cls} {q}{value}{q}" .format(**locals()), file=f) if token.is_group and (max_depth is None or depth < max_depth): |
