def find_static_assets(): import warnings try: import widgetsnbextension if hasattr(widgetsnbextension, 'find_static_assets'): return widgetsnbextension.find_static_assets() else: warnings.warn("""The version of ipywidgets that you have installed only works with Jupyter Notebook 4.2 or later. Your version of the Jupyter Notebook is too old. If you'd like to use ipywidgets with an older version of the notebook, use ipywidgets 4.x or earlier. """, RuntimeWarning) return [] except ImportError: warnings.warn("""To use the widgets with your installed Jupyter Notebook version, please install ipywidgets 4.x or earlier.""", RuntimeWarning) return []
def find_static_assets(): import warnings try: import widgetsnbextension if hasattr(widgetsnbextension, 'find_static_assets'): return widgetsnbextension.find_static_assets() else: warnings.warn( """The version of ipywidgets that you have installed only works with Jupyter Notebook 4.2 or later. Your version of the Jupyter Notebook is too old. If you'd like to use ipywidgets with an older version of the notebook, use ipywidgets 4.x or earlier. """, RuntimeWarning) return [] except ImportError: warnings.warn( """To use the widgets with your installed Jupyter Notebook version, please install ipywidgets 4.x or earlier.""", RuntimeWarning) return []
def init_handlers(self, settings): """Load the (URL pattern, handler) tuples for each component.""" # Order matters. The first handler to match the URL will handle the request. handlers = [] handlers.append((r'/deprecatedwidgets/(.*)', DeprecationHandler)) handlers.extend(load_handlers('tree.handlers')) handlers.extend([(r"/login", settings['login_handler_class'])]) handlers.extend([(r"/logout", settings['logout_handler_class'])]) handlers.extend(load_handlers('files.handlers')) handlers.extend(load_handlers('notebook.handlers')) handlers.extend(load_handlers('nbconvert.handlers')) handlers.extend(load_handlers('kernelspecs.handlers')) handlers.extend(load_handlers('edit.handlers')) handlers.extend(load_handlers('services.api.handlers')) handlers.extend(load_handlers('services.config.handlers')) handlers.extend(load_handlers('services.kernels.handlers')) handlers.extend(load_handlers('services.contents.handlers')) handlers.extend(load_handlers('services.sessions.handlers')) handlers.extend(load_handlers('services.nbconvert.handlers')) handlers.extend(load_handlers('services.kernelspecs.handlers')) handlers.extend(load_handlers('services.security.handlers')) # BEGIN HARDCODED WIDGETS HACK widgets = None try: import widgetsnbextension as widgets except: try: import ipywidgets as widgets except: app_log.warning( 'Widgets are unavailable. Please install widgetsnbextension or ipywidgets 4.0' ) if widgets is not None: handlers.append( ( r"/nbextensions/widgets/(.*)", FileFindHandler, { 'path': widgets.find_static_assets(), 'no_cache_paths': ['/'], # don't cache anything in nbextensions }), ) # END HARDCODED WIDGETS HACK handlers.append( ( r"/nbextensions/(.*)", FileFindHandler, { 'path': settings['nbextensions_path'], 'no_cache_paths': ['/'], # don't cache anything in nbextensions }), ) handlers.append(( r"/custom/(.*)", FileFindHandler, { 'path': settings['static_custom_path'], 'no_cache_paths': ['/'], # don't cache anything in custom })) # register base handlers last handlers.extend(load_handlers('base.handlers')) # set the URL that will be redirected from `/` handlers.append(( r'/?', web.RedirectHandler, { 'url': settings['default_url'], 'permanent': False, # want 302, not 301 })) # prepend base_url onto the patterns that we match new_handlers = [] for handler in handlers: pattern = url_path_join(settings['base_url'], handler[0]) new_handler = tuple([pattern] + list(handler[1:])) new_handlers.append(new_handler) # add 404 on the end, which will catch everything that falls through new_handlers.append((r'(.*)', Template404)) return new_handlers
def init_handlers(self, settings): """Load the (URL pattern, handler) tuples for each component.""" # Order matters. The first handler to match the URL will handle the request. handlers = [] handlers.append((r'/deprecatedwidgets/(.*)', DeprecationHandler)) handlers.extend(load_handlers('tree.handlers')) handlers.extend([(r"/login", settings['login_handler_class'])]) handlers.extend([(r"/logout", settings['logout_handler_class'])]) handlers.extend(load_handlers('files.handlers')) handlers.extend(load_handlers('notebook.handlers')) handlers.extend(load_handlers('nbconvert.handlers')) handlers.extend(load_handlers('kernelspecs.handlers')) handlers.extend(load_handlers('edit.handlers')) handlers.extend(load_handlers('services.api.handlers')) handlers.extend(load_handlers('services.config.handlers')) handlers.extend(load_handlers('services.kernels.handlers')) handlers.extend(load_handlers('services.contents.handlers')) handlers.extend(load_handlers('services.sessions.handlers')) handlers.extend(load_handlers('services.nbconvert.handlers')) handlers.extend(load_handlers('services.kernelspecs.handlers')) handlers.extend(load_handlers('services.security.handlers')) # BEGIN HARDCODED WIDGETS HACK widgets = None try: import widgetsnbextension as widgets except: try: import ipywidgets as widgets except: app_log.warning('Widgets are unavailable. Please install widgetsnbextension or ipywidgets 4.0') if widgets is not None: handlers.append( (r"/nbextensions/widgets/(.*)", FileFindHandler, { 'path': widgets.find_static_assets(), 'no_cache_paths': ['/'], # don't cache anything in nbextensions }), ) # END HARDCODED WIDGETS HACK handlers.append( (r"/nbextensions/(.*)", FileFindHandler, { 'path': settings['nbextensions_path'], 'no_cache_paths': ['/'], # don't cache anything in nbextensions }), ) handlers.append( (r"/custom/(.*)", FileFindHandler, { 'path': settings['static_custom_path'], 'no_cache_paths': ['/'], # don't cache anything in custom }) ) # register base handlers last handlers.extend(load_handlers('base.handlers')) # set the URL that will be redirected from `/` handlers.append( (r'/?', web.RedirectHandler, { 'url' : settings['default_url'], 'permanent': False, # want 302, not 301 }) ) # prepend base_url onto the patterns that we match new_handlers = [] for handler in handlers: pattern = url_path_join(settings['base_url'], handler[0]) new_handler = tuple([pattern] + list(handler[1:])) new_handlers.append(new_handler) # add 404 on the end, which will catch everything that falls through new_handlers.append((r'(.*)', Template404)) return new_handlers