handlers.py 1018 B

123456789101112131415161718192021222324252627
  1. from tornado import web
  2. from ..base.handlers import IPythonHandler
  3. from ..services.kernelspecs.handlers import kernel_name_regex
  4. class KernelSpecResourceHandler(web.StaticFileHandler, IPythonHandler):
  5. SUPPORTED_METHODS = ('GET', 'HEAD')
  6. def initialize(self):
  7. web.StaticFileHandler.initialize(self, path='')
  8. @web.authenticated
  9. def get(self, kernel_name, path, include_body=True):
  10. ksm = self.kernel_spec_manager
  11. try:
  12. self.root = ksm.get_kernel_spec(kernel_name).resource_dir
  13. except KeyError:
  14. raise web.HTTPError(404, u'Kernel spec %s not found' % kernel_name)
  15. self.log.debug("Serving kernel resource from: %s", self.root)
  16. return web.StaticFileHandler.get(self, path, include_body=include_body)
  17. @web.authenticated
  18. def head(self, kernel_name, path):
  19. return self.get(kernel_name, path, include_body=False)
  20. default_handlers = [
  21. (r"/kernelspecs/%s/(?P<path>.*)" % kernel_name_regex, KernelSpecResourceHandler),
  22. ]