-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathTreeBuilder.py
62 lines (46 loc) · 1.36 KB
/
TreeBuilder.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
from Tree import Tree
from Node import Node
from TreeParser import TreeParser
class TreeBuilder:
def __init__(self, data, rootName):
self.data = data
self.rootName = rootName
self.root = Node(self.rootName)
self.tree = Tree(self.root)
def computeLevel(self, rawNode):
level = 1
for c in rawNode:
if(c == '|'):
level = level + 1
elif(c == '+' or c == '\\'):
break
return level
def build(self):
nodeList = TreeParser(self.data, self.rootName).parse()
parent = self.root
previousNode = self.root
for rawNode in nodeList:
level = self.computeLevel(rawNode)
child = Node(rawNode)
#print(str(level) + ' ' + rawNode)
while(parent.getLevel() >= level):
parent = parent.getParent()
parent.addChild(child)
parent = child
return self.tree
def main():
# read from dependencies.txt file
# parse file into Tree
# run some find and contains
# run some print path on nodes
jarName = "[INFO] com.mcmoe:com.mcmoe.jsikulifut13:jar:0.0.1-SNAPSHOT"
dataFile = "zdependencies.txt"
tree = TreeBuilder(dataFile, jarName).build()
print(tree.toString(False))
rawNodeText = "[INFO] | | +- org.antlr:stringtemplate:jar:4.0.2:compile"
foundNode = tree.find(Node(rawNodeText))
print(foundNode.toString(False))
print(foundNode.buildWithChildren(False))
print(foundNode.buildWithAncestors(False))
if __name__ == '__main__':
main()