File tree Expand file tree Collapse file tree 3 files changed +31
-38
lines changed
Expand file tree Collapse file tree 3 files changed +31
-38
lines changed Original file line number Diff line number Diff line change 1+ from tree import tree
2+
3+ SP = '\N{SPACE} '
4+ HLIN = '\N{BOX DRAWINGS LIGHT HORIZONTAL} ' # ─
5+ ELBOW = f'\N{BOX DRAWINGS LIGHT UP AND RIGHT} { HLIN * 2 } { SP } ' # └──
6+ TEE = f'\N{BOX DRAWINGS LIGHT VERTICAL AND RIGHT} { HLIN * 2 } { SP } ' # ├──
7+ PIPE = f'\N{BOX DRAWINGS LIGHT VERTICAL} { SP * 3 } ' # │
8+
9+
10+ def render_lines (tree_iter ):
11+ name , _ , _ = next (tree_iter )
12+ yield name
13+ prefix = ''
14+
15+ for name , level , last in tree_iter :
16+ prefix = prefix [:4 * (level - 1 )]
17+ prefix = prefix .replace (TEE , PIPE ).replace (ELBOW , SP * 4 )
18+ prefix += ELBOW if last else TEE
19+ yield prefix + name
20+
21+
22+ def draw (cls ):
23+ for line in render_lines (tree (cls )):
24+ print (line )
25+
26+
27+ if __name__ == '__main__' :
28+ draw (BaseException )
Load Diff This file was deleted.
Original file line number Diff line number Diff line change 1- from pretty_tree import tree , render_lines
1+ from drawtree import tree , render_lines
22
33def test_1_level ():
44 result = list (render_lines (tree (BrokenPipeError )))
@@ -59,7 +59,7 @@ class Leaf2(Branch): pass
5959 assert expected == result
6060
6161
62- def test_3_levels_2_leaves ():
62+ def test_3_levels_2_leaves_dedent ():
6363 class A : pass
6464 class B (A ): pass
6565 class C (B ): pass
@@ -77,7 +77,7 @@ class E(D): pass
7777 assert expected == result
7878
7979
80- def test_4_levels_4_leaves ():
80+ def test_4_levels_4_leaves_dedent ():
8181 class A : pass
8282 class B1 (A ): pass
8383 class C1 (B1 ): pass
You can’t perform that action at this time.
0 commit comments