labhubapp.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. """A JupyterHub EntryPoint that defaults to use JupyterLab"""
  2. # Copyright (c) Jupyter Development Team.
  3. # Distributed under the terms of the Modified BSD License.
  4. import os
  5. from jupyter_server.serverapp import ServerApp
  6. from traitlets import default
  7. from .labapp import LabApp
  8. if not os.environ.get("JUPYTERHUB_SINGLEUSER_APP"):
  9. # setting this env prior to import of jupyterhub.singleuser avoids unnecessary import of notebook
  10. os.environ["JUPYTERHUB_SINGLEUSER_APP"] = "jupyter_server.serverapp.ServerApp"
  11. try:
  12. from jupyterhub.singleuser.mixins import make_singleuser_app
  13. except ImportError:
  14. # backward-compat with jupyterhub < 1.3
  15. from jupyterhub.singleuser import SingleUserNotebookApp as SingleUserServerApp
  16. else:
  17. SingleUserServerApp = make_singleuser_app(ServerApp)
  18. class SingleUserLabApp(SingleUserServerApp):
  19. @default("default_url")
  20. def _default_url(self):
  21. return "/lab"
  22. def find_server_extensions(self):
  23. """unconditionally enable jupyterlab server extension
  24. never called if using legacy SingleUserNotebookApp
  25. """
  26. super().find_server_extensions()
  27. self.jpserver_extensions[LabApp.get_extension_package()] = True
  28. def main(argv=None):
  29. return SingleUserLabApp.launch_instance(argv)
  30. if __name__ == "__main__":
  31. main()