Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit f152417

Browse filesBrowse files
committed
refactored drawtree.py
1 parent 980f750 commit f152417
Copy full SHA for f152417

File tree

Expand file treeCollapse file tree

3 files changed

+31
-38
lines changed
Filter options
Expand file treeCollapse file tree

3 files changed

+31
-38
lines changed
+28Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
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)

‎17-it-generator/tree/extra/pretty_tree.py

Copy file name to clipboardExpand all lines: 17-it-generator/tree/extra/pretty_tree.py
-35Lines changed: 0 additions & 35 deletions
This file was deleted.

‎17-it-generator/tree/extra/test_pretty_tree.py renamed to ‎17-it-generator/tree/extra/test_drawtree.py

Copy file name to clipboardExpand all lines: 17-it-generator/tree/extra/test_drawtree.py
+3-3Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from pretty_tree import tree, render_lines
1+
from drawtree import tree, render_lines
22

33
def 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

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.