Source code for jupyterlab_iframe.extension

import json
from notebook.base.handlers import IPythonHandler
from notebook.utils import url_path_join
from .proxy import ProxyHandler, ProxyWSHandler


[docs]class IFrameHandler(IPythonHandler):
[docs] def initialize(self, welcome=None, sites=None): self.sites = sites self.welcome = welcome
[docs] def get(self): self.finish(json.dumps({'welcome': self.welcome or '', 'sites': self.sites}))
[docs]def load_jupyter_server_extension(nb_server_app): """ Called when the extension is loaded. Args: nb_server_app (NotebookWebApplication): handle to the Notebook webserver instance. """ web_app = nb_server_app.web_app sites = nb_server_app.config.get('JupyterLabIFrame', {}).get('iframes', []) welcome = nb_server_app.config.get('JupyterLabIFrame', {}).get('welcome', []) host_pattern = '.*$' base_url = web_app.settings['base_url'] print('Installing jupyterlab_iframe handler on path %s' % url_path_join(base_url, 'iframes')) print('Handling iframes: %s' % sites) web_app.add_handlers(host_pattern, [(url_path_join(base_url, 'iframes/'), IFrameHandler, {'welcome': welcome, 'sites': sites}), (url_path_join(base_url, 'iframes/proxy'), ProxyHandler), (url_path_join(base_url, 'iframes/proxy'), ProxyWSHandler), ])