-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhelpers.py
73 lines (57 loc) · 2.04 KB
/
helpers.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
63
64
65
66
67
68
69
70
import json
import math
import copy
class ScottyLabsHandler(object):
def __init__(self):
self.json_file = open('out.json')
self.json_str = self.json_file.read()
self.json_data = json.loads(self.json_str)
self.courses = self.json_data['courses']
def getPrereqs(self,courses,courseName):
return courses[courseName]['prereqs']
def getCoreqs(self,courses,courseName):
return courses[courseName]['coreqs']
#separated by ands/ OR courses are in 2d list
def getPreNeeded(self,courses,courseName):
if self.getPrereqs(courses,courseName) == None: return []
pre = self.removeParenthesAndWhite(self.getPrereqs(courses,courseName))
pre = pre.split('and')
for i in range(len(pre)):
pre[i] = pre[i].split('or')
return pre
def getCoArray(self,courses,courseName):
co = self.removeParenthesAndWhite(getCoreqs(courses,courseName))
co = co.split('and')
for i in range(len(co)):
co[i] = co[i].split('or')
return co
def removeParenthesAndWhite(self,s):
s = s.replace("(", "")
s = s.replace(")", "")
s = s.replace(" ", "")
return s
def getPreFor(self,courses,courseName):
result = list()
for course in courses:
reqs = self.getPreNeeded(courses,course)
if reqs == None:
continue
for prereqs in reqs:
if courseName in prereqs:
result.append(course)
return result
def getDescriptions(self,courses,courseName):
return courses[courseName]
def lessCourses(courses):
answer = copy.copy(courses)
for key in courses:
subject = int(key.split("-")[0])
if subject not in [15,18,36,21,10]:
del answer[key]
return answer
def zoom(x,y,screenWidth,screenHeight):
# scale = max(screenWidth,screenHeight)
x = abs(x - screenWidth/2)
y = abs(y - screenHeight/2)
curve = 2*(0.9)**(0.05*(x+y))
return abs(curve)