mirror of
https://github.com/jupyterhub/jupyterhub.git
synced 2025-10-07 18:14:10 +00:00
[WIP] Add support for Jupyter Server
This commit is contained in:
@@ -61,6 +61,13 @@ script:
|
||||
make html
|
||||
popd
|
||||
fi
|
||||
- |
|
||||
if [[ "$TEST" == "jupyter_server" ]]; then
|
||||
pip uninstall notebook
|
||||
pip install jupyter_server
|
||||
export USE_JUPYTER_SERVER=True
|
||||
pytest -v --maxfail=2 --cov=jupyterhub jupyterhub/tests
|
||||
fi
|
||||
after_success:
|
||||
- codecov
|
||||
after_failure:
|
||||
|
@@ -6,6 +6,7 @@ import asyncio
|
||||
import json
|
||||
import os
|
||||
import random
|
||||
import importlib
|
||||
from datetime import datetime
|
||||
from datetime import timezone
|
||||
from textwrap import dedent
|
||||
@@ -20,10 +21,13 @@ from tornado.httpclient import HTTPRequest
|
||||
from tornado.web import HTTPError
|
||||
from tornado.web import RequestHandler
|
||||
|
||||
use_serverapp = os.environ.get('USE_JUPYTER_SERVER', 'False') == 'True'
|
||||
|
||||
required_package = 'jupyter_server' if use_serverapp else 'notebook'
|
||||
try:
|
||||
import notebook
|
||||
parent_module = importlib.import_module(required_package)
|
||||
except ImportError:
|
||||
raise ImportError("JupyterHub single-user server requires notebook >= 4.0")
|
||||
raise ImportError("JupyterHub single-user server requires {}".format(required_package))
|
||||
|
||||
from traitlets import (
|
||||
Any,
|
||||
@@ -38,14 +42,19 @@ from traitlets import (
|
||||
TraitError,
|
||||
)
|
||||
|
||||
from notebook.notebookapp import (
|
||||
NotebookApp,
|
||||
aliases as notebook_aliases,
|
||||
flags as notebook_flags,
|
||||
app_name = 'jupyter_server.serverapp' if use_serverapp else 'notebook.notebookapp'
|
||||
app_module = importlib.import_module(app_name)
|
||||
|
||||
NotebookApp = getattr(app_module, 'ServerApp' if use_serverapp else 'NotebookApp')
|
||||
notebook_aliases = app_module.aliases
|
||||
notebook_flags = app_module.flags
|
||||
|
||||
LoginHandler = getattr(importlib.import_module(required_package + '.auth.login'), 'LoginHandler')
|
||||
LogoutHandler = getattr(importlib.import_module(required_package + '.auth.logout'), 'LogoutHandler')
|
||||
IPythonHandler = getattr(
|
||||
importlib.import_module(required_package + '.base.handlers'),
|
||||
'JupyterHandler' if use_serverapp else 'IPythonHandler'
|
||||
)
|
||||
from notebook.auth.login import LoginHandler
|
||||
from notebook.auth.logout import LogoutHandler
|
||||
from notebook.base.handlers import IPythonHandler
|
||||
|
||||
from ._version import __version__, _check_version
|
||||
from .log import log_request
|
||||
|
@@ -931,7 +931,7 @@ class Spawner(LoggingConfigurable):
|
||||
args.append('--notebook-dir=%s' % _quote_safe(notebook_dir))
|
||||
if self.default_url:
|
||||
default_url = self.format_string(self.default_url)
|
||||
args.append('--NotebookApp.default_url=%s' % _quote_safe(default_url))
|
||||
args.append('--SingleUserNotebookApp.default_url=%s' % _quote_safe(default_url))
|
||||
|
||||
if self.debug:
|
||||
args.append('--debug')
|
||||
|
Reference in New Issue
Block a user