You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1181 lines
17 KiB
1181 lines
17 KiB
import sys
|
|
from data import tree, ID
|
|
|
|
BEAUTIFUL_SOUP = False
|
|
|
|
try:
|
|
from bs4 import BeautifulSoup as BS
|
|
BEAUTIFUL_SOUP = True
|
|
except ImportError:
|
|
pass
|
|
|
|
FILENAME = ""
|
|
if len(sys.argv) >= 2:
|
|
FILENAME = sys.argv[1]
|
|
|
|
"""
|
|
tree = [
|
|
("s", [
|
|
("a", [("b", [])]),
|
|
("d", []),
|
|
("c", [
|
|
("e",
|
|
[
|
|
("f", [("h", [])]),
|
|
("g", [("i", [])]),
|
|
]
|
|
)],
|
|
)])
|
|
]
|
|
"""
|
|
"""
|
|
tree = [
|
|
("z (root, anscestor of a)", [
|
|
("y", [("x (leaf)", []), ("w (leaf)", [])]),
|
|
("v (anscestor of a)", [("u (leaf)", [])]),
|
|
("t (anscestor of a, parent of a)",
|
|
[("s (sibling of a, leaf)", []), ("r (sibling of a, leaf)", []), ("a (descendant of a, anscestor of a)", [
|
|
("q (child of a, desandant of a)", [
|
|
("o (decendant of a, leaf)", []),
|
|
("n (decendant of a, leaf)", []),
|
|
("m (decendant of a, leaf)", []),
|
|
]),
|
|
("p (child of a, desendant of a, leaf)" , [])
|
|
])]),
|
|
])
|
|
]
|
|
"""
|
|
"""
|
|
tree = [
|
|
("4 (depth 0)", [
|
|
("1 (depth 1)", [
|
|
("0 (depth 2)", []),
|
|
("0 (depth 2)", []),
|
|
]),
|
|
("3 (depth 1)", [
|
|
("2 (depth 2)", [
|
|
("1 (depth 3)", [
|
|
("0 (depth 4)", []),
|
|
]),
|
|
("0 (depth 3)", []),
|
|
]),
|
|
("0 (depth 2)", []),
|
|
]),
|
|
])
|
|
]
|
|
"""
|
|
'''
|
|
tree = [
|
|
("no name", [
|
|
("1", [
|
|
("1", []),
|
|
("2", []),
|
|
]),
|
|
("2", []),
|
|
("3", [
|
|
("1", []),
|
|
("2", []),
|
|
("3", []),
|
|
]),
|
|
])
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("z", [
|
|
("v (subtree rooted at v)", [
|
|
("y (subtree rooted at v, left subtree of v)", [
|
|
("v (subtree rooted at v, left subtree of v", []),
|
|
("u (subtree rooted at v, left subtree of v", []),
|
|
]),
|
|
("x (subtree rooted at v, right subtree of v)", [
|
|
("w (subtree rooted at v, right subtree of v)", []),
|
|
]),
|
|
]),
|
|
("a", [("b", []), ("c", [])]),
|
|
])
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("v (3)", [
|
|
("a (2)", [
|
|
("e (1)", [
|
|
("g (0)", []),
|
|
("h (0)", []),
|
|
]),
|
|
("f (1)", [
|
|
("i (0)", []),
|
|
]),
|
|
]),
|
|
("b (1)", [
|
|
("c (0)", []),
|
|
("d (0)", []),
|
|
]),
|
|
])
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("A", [
|
|
("B", [
|
|
("D", []),
|
|
("E", []),
|
|
]),
|
|
("C", [
|
|
("F", []),
|
|
]),
|
|
])
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("5", [("3", []), ("6", [])])
|
|
]
|
|
tree = [
|
|
("5", [
|
|
("3", [
|
|
("2", []),
|
|
("6", []),
|
|
]),
|
|
("8", []),
|
|
])
|
|
]
|
|
|
|
tree = [
|
|
("5", [
|
|
("10 (right)", [
|
|
("20 (right)", [
|
|
("30 (right)", [
|
|
("25 (left)", []),
|
|
])
|
|
]),
|
|
]),
|
|
])
|
|
]
|
|
|
|
tree = [
|
|
("5", [])
|
|
]
|
|
|
|
tree = [
|
|
("500", [
|
|
("200", [
|
|
("100", []),
|
|
("300", [
|
|
("250", []),
|
|
("350", []),
|
|
]),
|
|
]),
|
|
("700", [
|
|
("600", [
|
|
("650 (keys in this subtree would be >600 , <700)", []),
|
|
("560", []),
|
|
]),
|
|
("800", []),
|
|
]),
|
|
])
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("3", [
|
|
("2", []),
|
|
("8", [
|
|
("5", [
|
|
("4", []),
|
|
("6", [
|
|
("7 (right)", []),
|
|
]),
|
|
]),
|
|
("9", []),
|
|
]),
|
|
])
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("5", [
|
|
("8 (right)", [
|
|
("10 (right)", []),
|
|
]),
|
|
])
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("5", [
|
|
("2", [
|
|
("1", []),
|
|
("3", []),
|
|
]),
|
|
("7", [
|
|
("6", []),
|
|
("8", []),
|
|
]),
|
|
])
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("1", [
|
|
("2 (right)", [
|
|
("3 (right)", [
|
|
("4 (right)", [
|
|
("5 (right)", [
|
|
("6 (right)", [
|
|
("7 (right)", [
|
|
("8 (right)", []),
|
|
]),
|
|
]),
|
|
]),
|
|
]),
|
|
]),
|
|
]),
|
|
])
|
|
]
|
|
'''
|
|
|
|
"""
|
|
tree = [
|
|
("5", [
|
|
("3", [
|
|
("2 (left)", []),
|
|
]),
|
|
("8", [
|
|
("7", []),
|
|
("9", []),
|
|
]),
|
|
]),
|
|
]
|
|
"""
|
|
|
|
'''
|
|
tree = [
|
|
("5", [
|
|
("3", [
|
|
("1 (left)", []),
|
|
]),
|
|
("10", []),
|
|
])
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("5", [
|
|
("1", []),
|
|
("10", [])
|
|
]),
|
|
]
|
|
'''
|
|
|
|
#tree = [("1", [])]
|
|
|
|
'''
|
|
tree = [
|
|
("4", [
|
|
("2", []),
|
|
("10", [
|
|
("7 (left)", [
|
|
("6", [
|
|
("5 (left)", []),
|
|
]),
|
|
("8", []),
|
|
]),
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("4", [
|
|
("2", []),
|
|
("7", [
|
|
("6", [
|
|
("5 (left", []),
|
|
]),
|
|
("8", []),
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("20", [
|
|
("6", [
|
|
("2", []),
|
|
("10", [
|
|
("7", [
|
|
("8 (right)", []),
|
|
]),
|
|
("12", []),
|
|
]),
|
|
]),
|
|
("...", []),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("30", [
|
|
("2", [
|
|
("1", []),
|
|
("6", [
|
|
("...", []),
|
|
("14", [
|
|
("11", [
|
|
("7", [
|
|
("9 (right)", [
|
|
("8", []),
|
|
("10", []),
|
|
]),
|
|
]),
|
|
("12", []),
|
|
]),
|
|
("...", []),
|
|
]),
|
|
]),
|
|
]),
|
|
("...", []),
|
|
])
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("30", [
|
|
("2", [
|
|
("1", []),
|
|
("7", [
|
|
("...", []),
|
|
("14", [
|
|
("11", [
|
|
("9", [
|
|
("8", []),
|
|
("10", []),
|
|
]),
|
|
("12", []),
|
|
]),
|
|
("...", []),
|
|
]),
|
|
]),
|
|
]),
|
|
("...", []),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("node", [
|
|
("node", [
|
|
("node", []),
|
|
("node", []),
|
|
]),
|
|
("node", [
|
|
("node", []),
|
|
("node", []),
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("node", [
|
|
("node", [
|
|
("node", [
|
|
("...", [
|
|
("node", [
|
|
("node", [
|
|
]),
|
|
]),
|
|
]),
|
|
]),
|
|
])
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("node", [
|
|
("node", [
|
|
("node", [
|
|
("node", []),
|
|
("node", []),
|
|
]),
|
|
("node", [
|
|
("node", []),
|
|
("node", []),
|
|
]),
|
|
]),
|
|
("node", [
|
|
("node", [
|
|
("node (right)", []),
|
|
]),
|
|
("node", [
|
|
("node", []),
|
|
("node", []),
|
|
]),
|
|
]),
|
|
])
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("node", [
|
|
("node (right)", [
|
|
("node (right)", [
|
|
("node (right)", [
|
|
("node (right)", []),
|
|
]),
|
|
]),
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("1", [
|
|
("2", []),
|
|
("2", []),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("5", [
|
|
("3", [
|
|
("2", []),
|
|
("4", []),
|
|
]),
|
|
("7", [
|
|
("6 (left)", []),
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("4", [
|
|
("2", [
|
|
("1", []),
|
|
("3", []),
|
|
]),
|
|
("6", [
|
|
("5", []),
|
|
("7", []),
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
"""
|
|
tree = [
|
|
("root node", [
|
|
("left subtree (7 nodes)", [
|
|
("node", [
|
|
("node", [
|
|
("node (left)", []),
|
|
]),
|
|
("node", []),
|
|
]),
|
|
("node", [
|
|
("node (left)", []),
|
|
]),
|
|
]),
|
|
("right subtree (31 nodes)", [
|
|
("node", [
|
|
("node", [
|
|
("node", [
|
|
("node", []),
|
|
("node", []),
|
|
]),
|
|
("node", [
|
|
("node", []),
|
|
("node", []),
|
|
]),
|
|
]),
|
|
("node", [
|
|
("node", [
|
|
("node", []),
|
|
("node", []),
|
|
]),
|
|
("node", [
|
|
("node", []),
|
|
("node", []),
|
|
]),
|
|
]),
|
|
]),
|
|
("node", [
|
|
("node", [
|
|
("node", [
|
|
("node", []),
|
|
("node", []),
|
|
]),
|
|
("node", [
|
|
("node", []),
|
|
("node", []),
|
|
]),
|
|
]),
|
|
("node", [
|
|
("node", [
|
|
("node", []),
|
|
("node", []),
|
|
]),
|
|
("node", [
|
|
("node", []),
|
|
("node", []),
|
|
]),
|
|
]),
|
|
]),
|
|
]),
|
|
]),
|
|
]
|
|
"""
|
|
|
|
'''
|
|
tree = [
|
|
("5", [
|
|
("3", [
|
|
("1", []),
|
|
("4", []),
|
|
]),
|
|
("7", [
|
|
("6", []),
|
|
("8", []),
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("3", [
|
|
("1", []),
|
|
("5", [
|
|
("4", []),
|
|
("7", [
|
|
("6", []),
|
|
("8", []),
|
|
]),
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("v (root; h=k)", [
|
|
("u (h=k-1)", [
|
|
("left left (h=k-1)", [
|
|
("T1 (h=h-2)", [
|
|
("w", []),
|
|
]),
|
|
]),
|
|
("T2 (h=k-2)", []),
|
|
]),
|
|
("T3 (h=k-2)", []),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("root", [
|
|
("left", [
|
|
("...", []),
|
|
]),
|
|
("right", [
|
|
("right left", [
|
|
("...", [
|
|
("w", []),
|
|
]),
|
|
]),
|
|
("right right", [
|
|
("...", []),
|
|
]),
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
'''
|
|
tree = [
|
|
("v", [
|
|
("left", [
|
|
("left left", [
|
|
("...", []),
|
|
]),
|
|
("left right", [
|
|
("...", [
|
|
("w\\*", []),
|
|
]),
|
|
]),
|
|
]),
|
|
("right", [
|
|
("...", []),
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("v (root)", [
|
|
("T1 (left; h=k-2)", []),
|
|
("node (right; h=k)", [
|
|
("T2 (right left; h=k-2)", [
|
|
("w", []),
|
|
]),
|
|
("T3 (right right)", [
|
|
]),
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("v (h=k)", [
|
|
("u (h=k-1)", [
|
|
("T1 (h=k-2)", []),
|
|
("w (h=k-2)", [
|
|
("T2 (h=k-3)", [
|
|
("Insertion here or... one other place", []),
|
|
]),
|
|
("T3 (h=k-3)", [
|
|
("Other possible insertion place.", []),
|
|
]),
|
|
]),
|
|
]),
|
|
("T4 (h=k-2)", []),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("a", [
|
|
("c (h=k)", [
|
|
("b", [
|
|
("T1", []),
|
|
("T2", [
|
|
("possible insertion", []),
|
|
]),
|
|
]),
|
|
("T3 (h=k-3)", [("possible insertion (not part of height)", [])]),
|
|
]),
|
|
("T4 (h=k-2)", []),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("c", [
|
|
("b (h=k-1)", [
|
|
("T1 (h=k-2)", []),
|
|
("T2 (h=k-2)", [
|
|
("possible insertion point", []),
|
|
]),
|
|
]),
|
|
("a (h=k-1)", [
|
|
("T3 (h=k-2)", [
|
|
("possible insertion", []),
|
|
]),
|
|
("T4 (h=k-2)", []),
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("X1", [
|
|
("...", []),
|
|
("node", [
|
|
("p (left)", [
|
|
("X2 (arrow to X1)", [
|
|
("... (right)", []),
|
|
]),
|
|
]),
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("root", [
|
|
("... (g; green)", [
|
|
("... (r; red)", [
|
|
("continues on with no detail", []),
|
|
("o (orange)", [
|
|
("continues on with no detail", []),
|
|
("node", [
|
|
("b (blue; left)", [
|
|
("continues on with no detail", []),
|
|
("continues oN with no detail", []),
|
|
]),
|
|
]),
|
|
]),
|
|
]),
|
|
("continues on with no detail", []),
|
|
]),
|
|
("continues on with no detail", []),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("node", [
|
|
("node", [
|
|
("...", []),
|
|
("...", [
|
|
("5 (left)", []),
|
|
]),
|
|
]),
|
|
("...", [
|
|
("14 (right; deleted)", []),
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("1", [
|
|
("2", [
|
|
("4", [
|
|
("8", []),
|
|
("9", []),
|
|
]),
|
|
("5", [
|
|
("10", []),
|
|
("11", []),
|
|
]),
|
|
]),
|
|
("3", [
|
|
("6", [
|
|
("12", []),
|
|
("13", []),
|
|
]),
|
|
("7", [
|
|
("14", []),
|
|
("15", []),
|
|
]),
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("1", [
|
|
("2", [
|
|
("4", [
|
|
("8", [
|
|
"14", "15"
|
|
]),
|
|
"9"
|
|
]),
|
|
("5", [
|
|
("10 (left)", [
|
|
("16 (left)", [
|
|
"20", "21"
|
|
]),
|
|
]),
|
|
]),
|
|
]),
|
|
("3", [
|
|
("6", [
|
|
("11", [
|
|
"17", ("18", ["22 (right)"])
|
|
]),
|
|
"12"
|
|
]),
|
|
("7", [("13 (right)", ["19"])]),
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("root", [
|
|
"child (right)"
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("root", [
|
|
("child", [
|
|
("grandchild", [
|
|
("great granchild", []),
|
|
("great granchild", []),
|
|
]),
|
|
("grandchild", [
|
|
("great granchild", []),
|
|
("great granchild", []),
|
|
]),
|
|
]),
|
|
("child", [
|
|
("grandchild", [
|
|
("great granchild", []),
|
|
("great granchild", []),
|
|
]),
|
|
("grandchild", [
|
|
("great granchild", []),
|
|
("great granchild", []),
|
|
]),
|
|
])
|
|
])
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("...", [
|
|
("node at arbitrary depth", [
|
|
"child node",
|
|
"child node"
|
|
]),
|
|
("node at arbitrary depth", [
|
|
"child node",
|
|
"child node"
|
|
]),
|
|
("node at arbitrary depth", [
|
|
"child node",
|
|
"child node",
|
|
]),
|
|
("node at arbitrary depth", [
|
|
"child node (left)"
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("1", [
|
|
("3 (highlighted arrow to 2)", [
|
|
("2", [
|
|
("7", []),
|
|
]),
|
|
("9", []),
|
|
]),
|
|
("6 (highlighted connection to 5)", [
|
|
("5", []),
|
|
("8", []),
|
|
]),
|
|
])
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("root (complete tree)", [
|
|
("... (anbiguous number of node/depth)", [
|
|
("10", [
|
|
("12", ["..."]),
|
|
("20", ["..."])
|
|
])
|
|
]),
|
|
("... (anbiguous number of node/depth)", [
|
|
("11", [
|
|
("13", ["..."]),
|
|
("19", ["..."]),
|
|
])
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("root", [
|
|
("child", [
|
|
("grandchild", [
|
|
"great grandchild",
|
|
"great grandchild",
|
|
]),
|
|
("grandchild", [
|
|
"great grandchild",
|
|
"great grandchild",
|
|
]),
|
|
]),
|
|
("child", [
|
|
("grandchild", [
|
|
"inserted node"
|
|
]),
|
|
("grandchild", []),
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("1", [
|
|
("2", [
|
|
"..."
|
|
]),
|
|
("3", [
|
|
("6", [
|
|
("10 (left)", []),
|
|
]),
|
|
("8", []),
|
|
]),
|
|
])
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("?", [
|
|
("7", [
|
|
("10", []),
|
|
("12", []),
|
|
]),
|
|
("6 (arrow towards root)", [
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("2", [
|
|
("4", [
|
|
("7", []),
|
|
("8", []),
|
|
]),
|
|
("3", [
|
|
("5 (left)", []),
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("0", [
|
|
("1", [
|
|
("3", [
|
|
("7", []),
|
|
("8", []),
|
|
]),
|
|
("4", [
|
|
("9", []),
|
|
("10", []),
|
|
]),
|
|
]),
|
|
("2", [
|
|
("5", [
|
|
("11 (left)", []),
|
|
]),
|
|
("6", []),
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("2", [
|
|
("7", [
|
|
"8", "10"
|
|
]),
|
|
("6", [
|
|
("9", []),
|
|
("1", []),
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("1 (2 is crossed out, arrow to 2)", [
|
|
("7", [
|
|
"8", "10"
|
|
]),
|
|
("2 (6 is crossed out, arrow to 6)", [
|
|
"9", "6 (1 is crossed out)"
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("7", [
|
|
("8", [
|
|
"11", "10"
|
|
]),
|
|
("9", [
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("0", [
|
|
("1", [
|
|
("3", [
|
|
("7", [
|
|
("15", []),
|
|
("16", []),
|
|
]),
|
|
("8", [
|
|
("17", []),
|
|
("18", []),
|
|
]),
|
|
]),
|
|
("4", [
|
|
("9 (label: last internal node)", [
|
|
("19", []),
|
|
("20", []),
|
|
]),
|
|
("10", []),
|
|
]),
|
|
]),
|
|
("2", [
|
|
("5", [
|
|
("11", []),
|
|
("12", []),
|
|
]),
|
|
("6", [
|
|
("13", []),
|
|
("14", []),
|
|
]),
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("1 (0; 10 is crossed out)", [
|
|
("2 (1; 9, 10 are crossed out; checkmark)", [
|
|
("3 (3; 10, 2, 7 are crossed out; checkmark))", [
|
|
("10 (3 is crossed out; checkmark)", []),
|
|
("7 (2 is crossed out; checkmark)", []),
|
|
]),
|
|
("6 (4; 6, 1 are crossed out; checkmark)", [
|
|
("9 (left; 1,6 are crossed out)", []),
|
|
]),
|
|
]),
|
|
("4 (2; 8 is crossed out; checkmark)", [
|
|
("5", []),
|
|
("8 (4 is crossed out)", []),
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("unlabled root", [
|
|
("unlabled child", []),
|
|
("unlabled child", [
|
|
("unlabled grandchild", [
|
|
("unlabled great-grandchild", [
|
|
("unlabled great-great-grandchild", ["..."]),
|
|
("unlabled great-great-grandchild", ["..."])
|
|
]),
|
|
("unlabled great-grandchild", [
|
|
("unlabled great-great-grandchild", ["..."]),
|
|
("unlabled great-great-grandchild", ["..."])
|
|
]),
|
|
]),
|
|
("unlabled grandchild", []),
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("c", [
|
|
("a", ["..."]),
|
|
("b", [
|
|
("d", ["..."]),
|
|
("e", ["..."]),
|
|
]),
|
|
]),
|
|
]
|
|
'''
|
|
|
|
'''
|
|
tree = [
|
|
("1", [
|
|
"2 (left)"
|
|
]),
|
|
]'''
|
|
|
|
def _generate_tree(tup):
|
|
html = ""
|
|
html += "<li role=\"treeitem\" tabindex=\"-1\">"
|
|
if type(tup) == str:
|
|
html += "<span id=\"{1}_{2}\">{0}</span></li>".format(tup, ID, tup.split(" ")[0])
|
|
return html
|
|
html += "<span id=\"{1}_{2}\">{0}</span>".format(tup[0], ID, tup[0].split(" ")[0])
|
|
if len(tup[1]) > 0:
|
|
html += "<ul role=\"group\">"
|
|
for i in tup[1]:
|
|
html += _generate_tree(i)
|
|
html += "</ul>"
|
|
html += "</li>"
|
|
return html
|
|
|
|
def generate_tree(treeobj):
|
|
html = "<ul role=\"tree\">"
|
|
html += _generate_tree(treeobj)
|
|
html += "</ul>"
|
|
return html
|
|
|
|
output = generate_tree(tree[0])
|
|
final_output = ""
|
|
|
|
if FILENAME != "":
|
|
final_output += "<!DOCTYPE html><html><head><meta charset=\"UTF-8\"></head><body>"
|
|
final_output += output
|
|
final_output += "</body></html>"
|
|
else:
|
|
final_output += "<!-- AUTOGENERATED HTML FROM PYTHON TOOL https://github.com/TTWNO/transcription-tools -->"
|
|
final_output += output
|
|
final_output += "<!-- END OF AUTOGENERATED HTML FROM PYTHON TOOL https://github.com/TTWNO/transcription-tools -->"
|
|
|
|
if BEAUTIFUL_SOUP:
|
|
bs = BS(final_output, "html.parser")
|
|
final_output = bs.prettify()
|
|
|
|
if FILENAME != "":
|
|
f = open(FILENAME, "w")
|
|
f.write(final_output)
|
|
f.close()
|
|
else:
|
|
print(final_output)
|