Merge branch 'master' into exceptions
This commit is contained in:
@@ -6,14 +6,7 @@ import exceptions
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
subjects = []
|
subjects = []
|
||||||
filepath = "/data/user.grades"
|
|
||||||
try:
|
try:
|
||||||
password = user_IO.password()
|
|
||||||
if os.path.isfile(filepath):
|
|
||||||
with open(filepath, 'r') as file:
|
|
||||||
string = encryption.decrypt(password, file.read())
|
|
||||||
serializer.deserialize(string)
|
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
user_input = user_IO.user_input()
|
user_input = user_IO.user_input()
|
||||||
@@ -43,7 +36,9 @@ try:
|
|||||||
elif input_or_output == "output":
|
elif input_or_output == "output":
|
||||||
_subject = user_input[1]
|
_subject = user_input[1]
|
||||||
subject_get = subject.get_subject(subjects, _subject)
|
subject_get = subject.get_subject(subjects, _subject)
|
||||||
user_IO.user_output(subject_get.return_average_subject)
|
user_IO.user_output(subject_get.name, subject_get.return_grade_categories(),
|
||||||
|
[subject_get.return_average_of_category(i) for i in subject_get.return_grade_categories()],
|
||||||
|
subject_get.return_average_of_subject())
|
||||||
elif input_or_output == "exit":
|
elif input_or_output == "exit":
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
@@ -53,10 +48,8 @@ try:
|
|||||||
exceptions.SubjectNotExistingException, exceptions.WrongCaseException) as e:
|
exceptions.SubjectNotExistingException, exceptions.WrongCaseException) as e:
|
||||||
user_IO.exception_raised(e)
|
user_IO.exception_raised(e)
|
||||||
|
|
||||||
with open(filepath, 'w') as file:
|
|
||||||
_list = [serializer.serialize(_subject) for _subject in subjects]
|
|
||||||
string = encryption.encrypt(password, str(_list))
|
|
||||||
file.write(string)
|
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print('ERROR' + str(e))
|
print('ERROR' + str(e))
|
||||||
|
raise
|
||||||
|
|||||||
+4
-3
@@ -19,17 +19,18 @@ class Subject:
|
|||||||
return self.grades[category][0]
|
return self.grades[category][0]
|
||||||
|
|
||||||
def return_grade_categories(self): # Return all categories
|
def return_grade_categories(self): # Return all categories
|
||||||
return [i for i in self.grades]
|
return self.grades
|
||||||
|
|
||||||
def return_average_of_category(self, category): # Return average of one categorie
|
def return_average_of_category(self, category): # Return average of one categorie
|
||||||
return sum(self.grades[category][0]) / len(self.grades[category][0])
|
_list = [int(i.grade) for i in self.grades[category][0]]
|
||||||
|
return sum(_list) / len(self.grades[category][0])
|
||||||
|
|
||||||
def return_average_of_subject(self):
|
def return_average_of_subject(self):
|
||||||
rating_sum = 0
|
rating_sum = 0
|
||||||
grade_sum = 0
|
grade_sum = 0
|
||||||
for i in self.grades:
|
for i in self.grades:
|
||||||
rating_sum += self.grades[i][1]
|
rating_sum += self.grades[i][1]
|
||||||
grade_sum += self.return_average_of_category(i)
|
grade_sum += self.return_average_of_category(i)*self.grades[i][1]
|
||||||
return grade_sum / rating_sum
|
return grade_sum / rating_sum
|
||||||
|
|
||||||
def category_existing(self, category):
|
def category_existing(self, category):
|
||||||
|
|||||||
+2
-7
@@ -49,17 +49,12 @@ def user_output(subject, categories, average, average_subject):
|
|||||||
for counter, category in enumerate(categories):
|
for counter, category in enumerate(categories):
|
||||||
print("The average in {} is {} with these grades:".format(category, average[counter]))
|
print("The average in {} is {} with these grades:".format(category, average[counter]))
|
||||||
string = ""
|
string = ""
|
||||||
for grade in categories[category]:
|
for grade in categories[category][0]:
|
||||||
string += str(grade) + ", "
|
string += str(grade.grade) + ", "
|
||||||
print(string + "\n")
|
print(string + "\n")
|
||||||
print("The average of {} is {}.".format(subject, average_subject))
|
print("The average of {} is {}.".format(subject, average_subject))
|
||||||
|
|
||||||
|
|
||||||
def password():
|
|
||||||
print("What is your password?")
|
|
||||||
return input()
|
|
||||||
|
|
||||||
|
|
||||||
def exception_raised(exception):
|
def exception_raised(exception):
|
||||||
print("Dear user you've raised an exception. The cause of the exception is:")
|
print("Dear user you've raised an exception. The cause of the exception is:")
|
||||||
if exception is exceptions.SubjectNotExistingException:
|
if exception is exceptions.SubjectNotExistingException:
|
||||||
|
|||||||
Reference in New Issue
Block a user