You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
"""A JupyterHub EntryPoint that defaults to use JupyterLab"""
|
|
|
|
# Copyright (c) Jupyter Development Team.
|
|
# Distributed under the terms of the Modified BSD License.
|
|
|
|
import os
|
|
|
|
from jupyter_server.serverapp import ServerApp
|
|
from traitlets import default
|
|
|
|
from .labapp import LabApp
|
|
|
|
if not os.environ.get("JUPYTERHUB_SINGLEUSER_APP"):
|
|
# setting this env prior to import of jupyterhub.singleuser avoids unnecessary import of notebook
|
|
os.environ["JUPYTERHUB_SINGLEUSER_APP"] = "jupyter_server.serverapp.ServerApp"
|
|
|
|
try:
|
|
from jupyterhub.singleuser.mixins import make_singleuser_app
|
|
except ImportError:
|
|
# backward-compat with jupyterhub < 1.3
|
|
from jupyterhub.singleuser import SingleUserNotebookApp as SingleUserServerApp
|
|
else:
|
|
SingleUserServerApp = make_singleuser_app(ServerApp)
|
|
|
|
|
|
class SingleUserLabApp(SingleUserServerApp):
|
|
@default("default_url")
|
|
def _default_url(self):
|
|
return "/lab"
|
|
|
|
def find_server_extensions(self):
|
|
"""unconditionally enable jupyterlab server extension
|
|
|
|
never called if using legacy SingleUserNotebookApp
|
|
"""
|
|
super().find_server_extensions()
|
|
self.jpserver_extensions[LabApp.get_extension_package()] = True
|
|
|
|
|
|
def main(argv=None):
|
|
return SingleUserLabApp.launch_instance(argv)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|