labhubapp.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import os
  2. from .labapp import LabApp
  3. try:
  4. from jupyterhub.singleuser import SingleUserNotebookApp
  5. except ImportError:
  6. SingleUserLabApp = None
  7. raise ImportError('You must have jupyterhub installed for this to work.')
  8. else:
  9. class SingleUserLabApp(SingleUserNotebookApp, LabApp):
  10. def init_webapp(self, *args, **kwargs):
  11. super().init_webapp(*args, **kwargs)
  12. settings = self.web_app.settings
  13. if 'page_config_data' not in settings:
  14. settings['page_config_data'] = {}
  15. settings['page_config_data']['hub_prefix'] = self.hub_prefix
  16. settings['page_config_data']['hub_host'] = self.hub_host
  17. settings['page_config_data']['hub_user'] = self.user
  18. api_token = os.getenv('JUPYTERHUB_API_TOKEN')
  19. if not api_token:
  20. api_token = ''
  21. if not self.token:
  22. try:
  23. self.token = api_token
  24. except AttributeError:
  25. self.log.error("Can't set self.token")
  26. settings['page_config_data']['token'] = api_token
  27. def main(argv=None):
  28. return SingleUserLabApp.launch_instance(argv)
  29. if __name__ == "__main__":
  30. main()