summaryrefslogtreecommitdiff
path: root/sqlparse/sql.py
diff options
context:
space:
mode:
authorMrVallentin <vallentinsource@gmail.com>2018-11-01 13:03:12 +0100
committerAndi Albrecht <albrecht.andi@gmail.com>2019-01-07 10:46:39 +0100
commitd02339582f151d24bacefa636bc3955c2932c29f (patch)
tree71c88ab9b422ac5ec9e3295dcb820b30b800c26f /sqlparse/sql.py
parent08cb6dab214dc638190c6e8f8d3b331b38bbd238 (diff)
downloadsqlparse-d02339582f151d24bacefa636bc3955c2932c29f.tar.gz
Revamped pprint_tree
Diffstat (limited to 'sqlparse/sql.py')
-rw-r--r--sqlparse/sql.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/sqlparse/sql.py b/sqlparse/sql.py
index 5acce5c..a9b8dd1 100644
--- a/sqlparse/sql.py
+++ b/sqlparse/sql.py
@@ -159,19 +159,23 @@ class TokenList(Token):
def _get_repr_name(self):
return type(self).__name__
- def _pprint_tree(self, max_depth=None, depth=0, f=None):
+ def _pprint_tree(self, max_depth=None, depth=0, f=None, _pre=''):
"""Pretty-print the object tree."""
- indent = u' | ' * depth
+ token_count = len(self.tokens)
for idx, token in enumerate(self.tokens):
cls = token._get_repr_name()
value = token._get_repr_value()
+ last = idx == (token_count - 1)
+ pre = u'`- ' if last else u'|- '
+
q = u'"' if value.startswith("'") and value.endswith("'") else u"'"
- print(u"{indent}{idx:2d} {cls} {q}{value}{q}"
+ print(u"{_pre}{pre}{idx} {cls} {q}{value}{q}"
.format(**locals()), file=f)
if token.is_group and (max_depth is None or depth < max_depth):
- token._pprint_tree(max_depth, depth + 1, f)
+ parent_pre = u' ' if last else u'| '
+ token._pprint_tree(max_depth, depth + 1, f, _pre + parent_pre)
def get_token_at_offset(self, offset):
"""Returns the token that is on position offset."""