mirror of
https://github.com/jupyterhub/jupyterhub.git
synced 2025-10-08 18:44:10 +00:00
[WIP] Add support for Jupyter Server
This commit is contained in:
@@ -61,6 +61,13 @@ script:
|
|||||||
make html
|
make html
|
||||||
popd
|
popd
|
||||||
fi
|
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:
|
after_success:
|
||||||
- codecov
|
- codecov
|
||||||
after_failure:
|
after_failure:
|
||||||
|
@@ -6,6 +6,7 @@ import asyncio
|
|||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
import random
|
import random
|
||||||
|
import importlib
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from datetime import timezone
|
from datetime import timezone
|
||||||
from textwrap import dedent
|
from textwrap import dedent
|
||||||
@@ -20,10 +21,13 @@ from tornado.httpclient import HTTPRequest
|
|||||||
from tornado.web import HTTPError
|
from tornado.web import HTTPError
|
||||||
from tornado.web import RequestHandler
|
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:
|
try:
|
||||||
import notebook
|
parent_module = importlib.import_module(required_package)
|
||||||
except ImportError:
|
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 (
|
from traitlets import (
|
||||||
Any,
|
Any,
|
||||||
@@ -38,14 +42,19 @@ from traitlets import (
|
|||||||
TraitError,
|
TraitError,
|
||||||
)
|
)
|
||||||
|
|
||||||
from notebook.notebookapp import (
|
app_name = 'jupyter_server.serverapp' if use_serverapp else 'notebook.notebookapp'
|
||||||
NotebookApp,
|
app_module = importlib.import_module(app_name)
|
||||||
aliases as notebook_aliases,
|
|
||||||
flags as notebook_flags,
|
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 ._version import __version__, _check_version
|
||||||
from .log import log_request
|
from .log import log_request
|
||||||
|
@@ -931,7 +931,7 @@ class Spawner(LoggingConfigurable):
|
|||||||
args.append('--notebook-dir=%s' % _quote_safe(notebook_dir))
|
args.append('--notebook-dir=%s' % _quote_safe(notebook_dir))
|
||||||
if self.default_url:
|
if self.default_url:
|
||||||
default_url = self.format_string(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:
|
if self.debug:
|
||||||
args.append('--debug')
|
args.append('--debug')
|
||||||
|
Reference in New Issue
Block a user