From: Oleg Broytman Date: Sat, 23 Jul 2016 03:17:22 +0000 (+0300) Subject: Output tokens to an output stream instead of printing X-Git-Tag: 0.0.1~57 X-Git-Url: https://git.phdru.name/?p=sqlconvert.git;a=commitdiff_plain;h=5a4f7d7f75c22d57a2cb8ffefce423832893a13f Output tokens to an output stream instead of printing Convert a list of tokens tokens to a string. --- diff --git a/mysql2sql/print_tokens.py b/mysql2sql/print_tokens.py index 05af1c1..bfcaad9 100644 --- a/mysql2sql/print_tokens.py +++ b/mysql2sql/print_tokens.py @@ -1,20 +1,35 @@ import sys +try: + from cStringIO import StringIO +except ImportError: + try: + from StringIO import StringIO + except ImportError: + from io import StringIO from sqlparse.sql import TokenList -def print_subtree(token_list, ident=0): +def print_subtree(token_list, outfile=sys.stdout, ident=0): for token in token_list: - print " "*ident, repr(token) + outfile.write(" "*ident) + outfile.write(repr(token)) + outfile.write("\n") if isinstance(token, TokenList): - print_subtree(token, ident+4) + print_subtree(token, outfile, ident+4) -def print_tokens(token_list, level=0): +def print_tokens(token_list, outfile=sys.stdout, level=0): for token in token_list: if not isinstance(token, TokenList): - sys.stdout.write(token.normalized) + outfile.write(token.normalized) if isinstance(token, TokenList): - print_tokens(token, level+1) + print_tokens(token, outfile, level+1) if level == 0: - print ';' + outfile.write(';\n') + + +def get_tokens_str(token_list): + sio = StringIO() + print_tokens(token_list, outfile=sio) + return sio.getvalue()