forked from miworking/KDD2015_XUETANG
-
Notifications
You must be signed in to change notification settings - Fork 0
/
enrollment_tree_node.py
62 lines (46 loc) · 1.57 KB
/
enrollment_tree_node.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
62
from access_log import *
from course_tree_node import *
class Enrollment_Tree_Node(object):
def __init__(self,id):
self.id = id
self.children = {}
self.category = None
self.level = 0
self.access_log = {}
self.start = None
def add_access_log(self,acess_record):
self.access_log[acess_record.get_timestamp()] = acess_record
def get_access_log(self):
return self.access_log
def set_level(self,level):
self.level = level
def get_children(self):
return self.children
def get_id(self):
return self.id
def get_category(self):
return self.category
def find_node(self,id):
if self is None:
return None
if self.id == id:
return self
else:
for child_id,child in self.children.items():
if child is not None:
if child.find_node(id) is not None:
return child.find_node(id)
return None
def print_node_and_children(self):
print "|",
for i in range(self.level):
print "--",
print "[" + str(self.id) + "] " + str(self.category) + " " + str(self.start)
for timestamp,record in self.access_log.items():
print "|",
for i in range(self.level):
print "--",
print " >> " + timestamp + " from:" + record.source + ", event:" + record.event
for child in self.children.values():
if child is not None:
child.print_node_and_children()