Coverage for e2xgrader/server_extensions/apps/help/help.py: 50%
20 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 e2xcore import BaseApp
2from nbgrader.apps.baseapp import NbGrader
3from tornado import web
4from traitlets import List, Unicode
6from .apihandlers import default_handlers
9class Help(NbGrader, BaseApp):
10 shared_paths = List(
11 trait=Unicode(),
12 default_value=[],
13 help="List of paths of files served via the help app",
14 ).tag(config=True)
16 def __init__(self, **kwargs):
17 NbGrader.__init__(self, **kwargs)
18 BaseApp.__init__(self, **kwargs)
20 def get_static_handlers(self):
21 static_handlers = [
22 (
23 f"/e2x/help/static/{idx}/(.*)",
24 web.StaticFileHandler,
25 dict(path=path, default_filename="index.html"),
26 )
27 for idx, path in enumerate(self.shared_paths)
28 ]
29 for idx, path in enumerate(self.shared_paths):
30 static_handlers.append(
31 (
32 f"/e2x/help/static/{idx}/(.*)",
33 web.StaticFileHandler,
34 dict(path=path, default_filename="index.html"),
35 )
36 )
37 return static_handlers
39 def load_app(self):
40 self.initialize([])
41 self.log.info("Loading the e2xgrader help app")
43 self.update_tornado_settings(
44 dict(
45 e2xhelp_shared_dirs={
46 str(idx): path for idx, path in enumerate(self.shared_paths)
47 }
48 )
49 )
50 self.add_handlers(self.get_static_handlers() + default_handlers)