Coverage for e2xgrader/__init__.py: 83%

24 statements  

« prev     ^ index     » next       coverage.py v7.4.2, created at 2024-03-14 13:22 +0100

1""" 

2A system for creating assignments. 

3""" 

4 

5import glob 

6import os 

7from os.path import join as pjoin 

8 

9from .server_extensions.student import ( 

10 _load_jupyter_server_extension as load_student_extension, 

11) 

12from .server_extensions.student_exam import ( 

13 _load_jupyter_server_extension as load_student_exam_extension, 

14) 

15from .server_extensions.teacher import ( 

16 _load_jupyter_server_extension as load_teacher_extension, 

17) 

18 

19 

20def _jupyter_nbextension_paths(): 

21 root = os.path.dirname(__file__) 

22 base_path = pjoin(root, "static", "nbextensions") 

23 

24 paths = [] 

25 

26 for section in ["notebook", "tree"]: 

27 for notebook_extension in glob.glob(pjoin(base_path, section, "*")): 

28 name = f"{os.path.split(notebook_extension)[-1]}_{section}" 

29 paths.append( 

30 dict( 

31 section=section, 

32 src=notebook_extension, 

33 dest=name, 

34 require=pjoin(name, "main"), 

35 ) 

36 ) 

37 

38 return paths 

39 

40 

41def _jupyter_server_extension_paths(): 

42 paths = [ 

43 dict(module="e2xgrader.server_extensions.teacher"), 

44 dict(module="e2xgrader.server_extensions.student"), 

45 dict(module="e2xgrader.server_extensions.student_exam"), 

46 ] 

47 

48 return paths 

49 

50 

51def _jupyter_server_extension_points(): 

52 return [dict(module="e2xgrader")] 

53 

54 

55def _load_jupyter_server_extension(app): 

56 load_student_extension(app) 

57 load_student_exam_extension(app) 

58 load_teacher_extension(app)