diff options
author | MrVallentin <vallentinsource@gmail.com> | 2018-11-01 13:03:12 +0100 |
---|---|---|
committer | Andi Albrecht <albrecht.andi@gmail.com> | 2019-01-07 10:46:39 +0100 |
commit | d02339582f151d24bacefa636bc3955c2932c29f (patch) | |
tree | 71c88ab9b422ac5ec9e3295dcb820b30b800c26f /sqlparse/sql.py | |
parent | 08cb6dab214dc638190c6e8f8d3b331b38bbd238 (diff) | |
download | sqlparse-d02339582f151d24bacefa636bc3955c2932c29f.tar.gz |
Revamped pprint_tree
Diffstat (limited to 'sqlparse/sql.py')
-rw-r--r-- | sqlparse/sql.py | 12 |
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.""" |