Skip to content

Commit f7618e7

Browse files
committed
Autoformat all (python) files
1 parent acd54b0 commit f7618e7

File tree

9 files changed

+97
-67
lines changed

9 files changed

+97
-67
lines changed

create_debug_users.py

+15-4
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,24 @@
22
import os
33
import sys
44
import subprocess
5+
56
if not __file__.endswith("shell.py"):
6-
subprocess.call([sys.executable, os.path.join(os.path.dirname(__file__), "manage.py"), "shell", "-c", open(__file__).read()])
7+
subprocess.call(
8+
[
9+
sys.executable,
10+
os.path.join(os.path.dirname(__file__), "manage.py"),
11+
"shell",
12+
"-c",
13+
open(__file__).read(),
14+
]
15+
)
716
exit()
817

918
from tin.apps.users.models import User
1019

1120
password = input("Enter password for all users: ")
1221

22+
# fmt: off
1323
users = [
1424
#[username, id, full_name, first_name, last_name, email, is_teacher, is_student, is_staff, is_superuser]
1525
["2020jbeutner", 33538, "John Beutner", "John", "Beutner", "[email protected]", False, True, False, False],
@@ -18,12 +28,14 @@
1828
["pcgabor", None, "Peter Gabor", "Peter", "Gabor", "[email protected]", True, False, False, False],
1929
["admin", None, "Admin", "Admin", "Admin", "[email protected]", False, False, True, True],
2030
]
31+
# fmt: on
32+
2133
for user_info in users:
2234
print("Creating user {}".format(user_info[0]))
2335
if user_info[1] is None:
24-
user = User.objects.get_or_create(username = user_info[0])[0]
36+
user = User.objects.get_or_create(username=user_info[0])[0]
2537
else:
26-
user = User.objects.get_or_create(id = user_info[1])[0]
38+
user = User.objects.get_or_create(id=user_info[1])[0]
2739
user.username = user_info[0]
2840

2941
user.full_name = user_info[2]
@@ -36,4 +48,3 @@
3648
user.is_superuser = user_info[9]
3749
user.set_password(password)
3850
user.save()
39-

manage.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
import os
33
import sys
44

5-
if __name__ == '__main__':
6-
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'tin.settings')
5+
if __name__ == "__main__":
6+
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "tin.settings")
77
try:
88
from django.core.management import execute_from_command_line
99
except ImportError as exc:

tin/apps/assignments/models.py

+16-20
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,9 @@ def filter_visible(self, user):
3131
if user.is_superuser:
3232
return self.all()
3333
else:
34-
return self.filter(Q(course__teacher=user) | Q(course__students=user, hidden=False)).distinct()
34+
return self.filter(
35+
Q(course__teacher=user) | Q(course__students=user, hidden=False)
36+
).distinct()
3537

3638
def filter_editable(self, user):
3739
if user.is_superuser:
@@ -58,10 +60,10 @@ class Assignment(models.Model):
5860
description = models.CharField(max_length=4096)
5961

6062
LANGUAGES = (
61-
('P', 'Python 3'),
62-
('J', 'Java'),
63+
("P", "Python 3"),
64+
("J", "Java"),
6365
)
64-
language = models.CharField(max_length=1, choices=LANGUAGES, default='P')
66+
language = models.CharField(max_length=1, choices=LANGUAGES, default="P")
6567

6668
filename = models.CharField(max_length=50, default="main.py")
6769

@@ -145,11 +147,7 @@ def save_grader_file(self, grader_text: str) -> None:
145147
raise FileNotFoundError from e
146148

147149
def save_file(self, file_text: str, file_name: str) -> None:
148-
fpath = os.path.join(
149-
settings.MEDIA_ROOT,
150-
"assignment-{}".format(self.id),
151-
file_name
152-
)
150+
fpath = os.path.join(settings.MEDIA_ROOT, "assignment-{}".format(self.id), file_name)
153151

154152
os.makedirs(os.path.dirname(fpath), exist_ok=True)
155153

@@ -178,8 +176,9 @@ def check_rate_limit(self, student) -> None:
178176

179177
if (
180178
Submission.objects.filter(
181-
date_submitted__gte=now - datetime.timedelta(minutes=self.submission_limit_interval),
182-
student=student
179+
date_submitted__gte=now
180+
- datetime.timedelta(minutes=self.submission_limit_interval),
181+
student=student,
183182
).count()
184183
> self.submission_limit_count
185184
):
@@ -262,7 +261,10 @@ def __str__(self):
262261
return f"Quiz for {self.assignment}"
263262

264263
def issues_for_student(self, student):
265-
return sum(lm.severity for lm in self.log_messages.filter(student=student)) >= settings.QUIZ_ISSUE_THRESHOLD
264+
return (
265+
sum(lm.severity for lm in self.log_messages.filter(student=student))
266+
>= settings.QUIZ_ISSUE_THRESHOLD
267+
)
266268

267269
def open_for_student(self, student):
268270
return not (self.locked_for_student(student) or self.ended_for_student(student))
@@ -275,15 +277,9 @@ def ended_for_student(self, student):
275277

276278

277279
class LogMessage(models.Model):
278-
quiz = models.ForeignKey(
279-
Quiz,
280-
on_delete=models.CASCADE,
281-
related_name="log_messages"
282-
)
280+
quiz = models.ForeignKey(Quiz, on_delete=models.CASCADE, related_name="log_messages")
283281
student = models.ForeignKey(
284-
get_user_model(),
285-
on_delete=models.CASCADE,
286-
related_name="log_messages"
282+
get_user_model(), on_delete=models.CASCADE, related_name="log_messages"
287283
)
288284

289285
date = models.DateTimeField(auto_now_add=True)

tin/apps/assignments/views.py

+49-28
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,9 @@ def show_view(request, assignment_id):
8181
if period == "":
8282
if request.user in course.teacher.all():
8383
try:
84-
period = course.period_set.filter(teacher=request.user).order_by("name")[0].id
84+
period = (
85+
course.period_set.filter(teacher=request.user).order_by("name")[0].id
86+
)
8587
except:
8688
period = "all"
8789
else:
@@ -91,7 +93,9 @@ def show_view(request, assignment_id):
9193
active_period = "all"
9294
student_list = course.students.all().order_by("periods", "last_name")
9395
else:
94-
active_period = get_object_or_404(Period.objects.filter(course=course), id=int(period))
96+
active_period = get_object_or_404(
97+
Period.objects.filter(course=course), id=int(period)
98+
)
9599
student_list = active_period.students.all().order_by("last_name")
96100
else:
97101
active_period = "all"
@@ -114,7 +118,13 @@ def show_view(request, assignment_id):
114118
)
115119
else:
116120
students_and_submissions.append(
117-
(student, period, latest_submission, assignment.quiz.ended_for_student(student), assignment.quiz.locked_for_student(student))
121+
(
122+
student,
123+
period,
124+
latest_submission,
125+
assignment.quiz.ended_for_student(student),
126+
assignment.quiz.locked_for_student(student),
127+
)
118128
)
119129

120130
context = {
@@ -158,10 +168,7 @@ def create_view(request, course_id):
158168

159169
quiz_type = assignment_form.cleaned_data["is_quiz"]
160170
if quiz_type != "-1":
161-
Quiz.objects.create(
162-
assignment = assignment,
163-
action = quiz_type
164-
)
171+
Quiz.objects.create(assignment=assignment, action=quiz_type)
165172

166173
return redirect("assignments:show", assignment.id)
167174
else:
@@ -191,7 +198,9 @@ def edit_view(request, assignment_id):
191198
initial_is_quiz = assignment.quiz.action
192199
except:
193200
pass
194-
assignment_form = AssignmentForm(course, instance=assignment, initial={"is_quiz": initial_is_quiz})
201+
assignment_form = AssignmentForm(
202+
course, instance=assignment, initial={"is_quiz": initial_is_quiz}
203+
)
195204
if request.method == "POST":
196205
assignment_form = AssignmentForm(course, data=request.POST, instance=assignment)
197206
if assignment_form.is_valid():
@@ -209,10 +218,7 @@ def edit_view(request, assignment_id):
209218
assignment.save()
210219
assignment.quiz.save()
211220
except:
212-
Quiz.objects.create(
213-
assignment = assignment,
214-
action = quiz_type
215-
)
221+
Quiz.objects.create(assignment=assignment, action=quiz_type)
216222

217223
return redirect("assignments:show", assignment.id)
218224

@@ -351,7 +357,11 @@ def student_submissions_view(request, assignment_id, student_id):
351357
)
352358
latest_submission = submissions.first() if submissions else None
353359

354-
log_messages = assignment.quiz.log_messages.filter(student=request.user).order_by("date") if assignment.is_quiz else None
360+
log_messages = (
361+
assignment.quiz.log_messages.filter(student=request.user).order_by("date")
362+
if assignment.is_quiz
363+
else None
364+
)
355365

356366
latest_submission_text = None
357367
if latest_submission:
@@ -507,14 +517,22 @@ def submit_view(request, assignment_id):
507517

508518
@login_required
509519
def quiz_view(request, assignment_id):
510-
assignment = get_object_or_404(Assignment.objects.filter_visible(request.user), id=assignment_id)
520+
assignment = get_object_or_404(
521+
Assignment.objects.filter_visible(request.user), id=assignment_id
522+
)
511523

512-
if not assignment.is_quiz or assignment.quiz.locked_for_student(request.user) or assignment.quiz.ended_for_student(request.user):
524+
if (
525+
not assignment.is_quiz
526+
or assignment.quiz.locked_for_student(request.user)
527+
or assignment.quiz.ended_for_student(request.user)
528+
):
513529
raise http.Http404
514530

515531
student = request.user
516532

517-
submissions = Submission.objects.filter(student=student, assignment=assignment).order_by("-date_submitted")
533+
submissions = Submission.objects.filter(student=student, assignment=assignment).order_by(
534+
"-date_submitted"
535+
)
518536
latest_submission = submissions.first() if submissions else None
519537

520538
latest_submission_text = None
@@ -529,7 +547,10 @@ def quiz_view(request, assignment_id):
529547
if assignment.grader_file is None:
530548
return redirect("assignments:show", assignment.id)
531549

532-
if Submission.objects.filter(student=request.user, complete=False).count() >= settings.CONCURRENT_USER_SUBMISSION_LIMIT:
550+
if (
551+
Submission.objects.filter(student=request.user, complete=False).count()
552+
>= settings.CONCURRENT_USER_SUBMISSION_LIMIT
553+
):
533554
text_form = TextSubmissionForm(request.POST)
534555
text_errors = (
535556
"You may only have a maximum of {} submission{} running at the same "
@@ -590,7 +611,9 @@ def quiz_view(request, assignment_id):
590611

591612
@login_required
592613
def quiz_report_view(request, assignment_id):
593-
assignment = get_object_or_404(Assignment.objects.filter_visible(request.user), id=assignment_id)
614+
assignment = get_object_or_404(
615+
Assignment.objects.filter_visible(request.user), id=assignment_id
616+
)
594617

595618
content = request.GET.get("content", "")
596619
severity = int(request.GET.get("severity", 0))
@@ -599,10 +622,7 @@ def quiz_report_view(request, assignment_id):
599622
json_data = json.dumps("no action")
600623
else:
601624
LogMessage.objects.create(
602-
quiz=assignment.quiz,
603-
student=request.user,
604-
content=content,
605-
severity=severity
625+
quiz=assignment.quiz, student=request.user, content=content, severity=severity
606626
)
607627

608628
resp = "no action"
@@ -618,21 +638,22 @@ def quiz_report_view(request, assignment_id):
618638

619639
@login_required
620640
def quiz_end_view(request, assignment_id):
621-
assignment = get_object_or_404(Assignment.objects.filter_visible(request.user), id=assignment_id)
641+
assignment = get_object_or_404(
642+
Assignment.objects.filter_visible(request.user), id=assignment_id
643+
)
622644

623645
LogMessage.objects.create(
624-
quiz=assignment.quiz,
625-
student=request.user,
626-
content="Ended quiz",
627-
severity=0
646+
quiz=assignment.quiz, student=request.user, content="Ended quiz", severity=0
628647
)
629648

630649
return redirect("assignments:show", assignment.id)
631650

632651

633652
@teacher_or_superuser_required
634653
def quiz_clear_view(request, assignment_id, user_id):
635-
assignment = get_object_or_404(Assignment.objects.filter_editable(request.user), id=assignment_id)
654+
assignment = get_object_or_404(
655+
Assignment.objects.filter_editable(request.user), id=assignment_id
656+
)
636657
user = get_object_or_404(get_user_model(), id=user_id)
637658

638659
assignment.quiz.log_messages.filter(student=user).delete()

tin/apps/courses/models.py

-2
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,9 @@ def __repr__(self):
4747
def get_teacher_str(self):
4848
return ", ".join((t.last_name for t in self.teacher.all()))
4949

50-
5150
def is_student_in_course(self, user):
5251
return user in self.students.all()
5352

54-
5553
def is_only_student_in_course(self, user):
5654
return user in self.students.all() and not (user.is_superuser or user in self.teacher.all())
5755

tin/apps/submissions/models.py

+2-6
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,13 @@ def filter_visible(self, user):
1919
if user.is_superuser:
2020
return self.all()
2121
else:
22-
return self.filter(
23-
Q(assignment__course__teacher=user) | Q(student=user)
24-
).distinct()
22+
return self.filter(Q(assignment__course__teacher=user) | Q(student=user)).distinct()
2523

2624
def filter_editable(self, user):
2725
if user.is_superuser:
2826
return self.all()
2927
else:
30-
return self.filter(
31-
Q(assignment__course__teacher=user) | Q(student=user)
32-
).distinct()
28+
return self.filter(Q(assignment__course__teacher=user) | Q(student=user)).distinct()
3329

3430

3531
def upload_submission_file_path(submission, _): # pylint: disable=unused-argument

tin/apps/submissions/tasks.py

+10-2
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727
def truncate_output(text, field_name):
2828
max_len = Submission._meta.get_field(field_name).max_length
29-
return ("..." + text[-max_len + 5:]) if len(text) > max_len else text
29+
return ("..." + text[-max_len + 5 :]) if len(text) > max_len else text
3030

3131

3232
@shared_task
@@ -72,7 +72,15 @@ def run_submission(submission_id):
7272
else:
7373
folder_name = "testing"
7474

75-
with open(os.path.join(settings.BASE_DIR, "sandboxing", "wrappers", folder_name, f"{submission.assignment.language}.txt")) as wrapper_file:
75+
with open(
76+
os.path.join(
77+
settings.BASE_DIR,
78+
"sandboxing",
79+
"wrappers",
80+
folder_name,
81+
f"{submission.assignment.language}.txt",
82+
)
83+
) as wrapper_file:
7684
wrapper_text = wrapper_file.read().format(
7785
has_network_access=bool(submission.assignment.has_network_access),
7886
venv_path=(

tin/apps/venvs/models.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -176,9 +176,9 @@ def install_packages(self, pkgs):
176176
raise FileNotFoundError from e
177177

178178
try:
179-
self.package_installation_output = res.stdout.decode()[-16 * 1024:]
179+
self.package_installation_output = res.stdout.decode()[-16 * 1024 :]
180180
except UnicodeDecodeError:
181-
self.package_installation_output = str(res.stdout)[-16 * 1024:]
181+
self.package_installation_output = str(res.stdout)[-16 * 1024 :]
182182
finally:
183183
self.installing_packages = False
184184
self.save()

tin/sandboxing

Submodule sandboxing updated from 21e8022 to 9f353ff

0 commit comments

Comments
 (0)