exceptions added for user input

This commit is contained in:
2019-08-02 18:54:27 +02:00
parent 0cb5e2f73f
commit caf650eaef
4 changed files with 91 additions and 33 deletions
+39 -30
View File
@@ -2,6 +2,7 @@ import subject
import user_IO
import serializer
import encryption
import exceptions
import os
subjects = []
@@ -13,37 +14,45 @@ try:
string = encryption.decrypt(password, file.read())
serializer.deserialize(string)
while True:
user_input = user_IO.user_input()
input_or_output = user_input[0]
if input_or_output == "input":
_edit = user_input[1]
_subject = user_input[2]
if _edit == "grade":
_category = user_input[3]
_grade = user_input[4]
_grade_name = user_input[5]
subject_edit = subject.get_subject(subjects, _subject)
if subject_edit:
subject_edit.add_grade(_category, subject.Grade(_grade, _grade_name))
elif _edit == "category":
_category = user_input[3]
_rating = user_input[4]
subject_edit = subject.get_subject(subjects, _subject)
if subject_edit:
subject_edit.add_grade_category(_category, _rating)
elif _edit == "subject":
_main = user_input[3]
_oral = user_input[4]
subjects.append(subject.Subject(_subject, _main, _oral))
elif input_or_output == "output":
_subject = user_input[1]
subject_get = subject.get_subject(subjects, _subject)
user_IO.user_output(subject_get.return_average_subject)
elif input_or_output == "exit":
break
try:
user_input = user_IO.user_input()
input_or_output = user_input[0]
if input_or_output == "input":
_edit = user_input[1]
_subject = user_input[2]
if _edit == "grade":
_category = user_input[3]
_grade = user_input[4]
_grade_name = user_input[5]
subject_edit = subject.get_subject(subjects, _subject)
if subject_edit:
subject_edit.add_grade(_category, subject.Grade(_grade, _grade_name))
elif _edit == "category":
_category = user_input[3]
_rating = user_input[4]
subject_edit = subject.get_subject(subjects, _subject)
if subject_edit:
subject_edit.add_grade_category(_category, _rating)
elif _edit == "subject":
_main = user_input[3]
_oral = user_input[4]
subjects.append(subject.Subject(_subject, _main, _oral))
else:
raise exceptions.WrongCaseException
elif input_or_output == "output":
_subject = user_input[1]
subject_get = subject.get_subject(subjects, _subject)
user_IO.user_output(subject_get.return_average_subject)
elif input_or_output == "exit":
break
else:
raise exceptions.WrongCaseException
except (exceptions.NotANumberException, exceptions.CategoryNotExistingException,
exceptions.SubjectNotExistingException, exceptions.WrongCaseException) as 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))