summaryrefslogtreecommitdiff
path: root/sqlparse/sql.py
diff options
context:
space:
mode:
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."""