Coverage for e2xgrader/extensions/serverextensions.py: 97%
35 statements
« prev ^ index » next coverage.py v7.4.2, created at 2024-03-14 13:22 +0100
« prev ^ index » next coverage.py v7.4.2, created at 2024-03-14 13:22 +0100
1from .base import BaseExtensionManager
2from .utils import get_serverextension_toggle
4NBGRADER_ASSIGNMENT_LIST = "nbgrader.server_extensions.assignment_list"
5NBGRADER_FORMGRADER = "nbgrader.server_extensions.formgrader"
6NBGRADER_VALIDATE_ASSIGNMENT = "nbgrader.server_extensions.validate_assignment"
7NBGRADER_COURSE_LIST = "nbgrader.server_extensions.course_list"
8NBGRADER_EXTENSIONS = [
9 NBGRADER_ASSIGNMENT_LIST,
10 NBGRADER_COURSE_LIST,
11 NBGRADER_FORMGRADER,
12 NBGRADER_VALIDATE_ASSIGNMENT,
13]
15E2XGRADER_TEACHER = "e2xgrader.server_extensions.teacher"
16E2XGRADER_STUDENT = "e2xgrader.server_extensions.student"
17E2XGRADER_STUDENT_EXAM = "e2xgrader.server_extensions.student_exam"
18E2XGRADER_EXTENSIONS = [E2XGRADER_TEACHER, E2XGRADER_STUDENT, E2XGRADER_STUDENT_EXAM]
20toggle_server_extension_python = get_serverextension_toggle()
23class ServerExtensionManager(BaseExtensionManager):
24 def __init__(self):
25 super().__init__()
26 if toggle_server_extension_python is None:
27 self.log.warn("No server extension toggler found!")
29 def deactivate(self, sys_prefix: bool = True, user: bool = False) -> None:
30 for import_name in E2XGRADER_EXTENSIONS + NBGRADER_EXTENSIONS:
31 toggle_server_extension_python(
32 import_name=import_name, enabled=False, sys_prefix=sys_prefix, user=user
33 )
35 def activate_teacher(self, sys_prefix: bool = True, user: bool = False) -> None:
36 kwargs = dict(sys_prefix=sys_prefix, user=user)
37 self.deactivate(**kwargs)
38 for import_name in [E2XGRADER_TEACHER, NBGRADER_COURSE_LIST]:
39 toggle_server_extension_python(
40 import_name=import_name, enabled=True, **kwargs
41 )
43 def activate_student(self, sys_prefix: bool = True, user: bool = False) -> None:
44 kwargs = dict(sys_prefix=sys_prefix, user=user)
45 self.deactivate(**kwargs)
46 for import_name in [E2XGRADER_STUDENT, NBGRADER_COURSE_LIST]:
47 toggle_server_extension_python(
48 import_name=import_name, enabled=True, **kwargs
49 )
51 def activate_student_exam(self, sys_prefix=True, user=False):
52 kwargs = dict(sys_prefix=sys_prefix, user=user)
53 self.deactivate(**kwargs)
54 for import_name in [E2XGRADER_STUDENT_EXAM, NBGRADER_COURSE_LIST]:
55 toggle_server_extension_python(
56 import_name=import_name, enabled=True, **kwargs
57 )