Skip to content

Commit ee88147

Browse files
authored
Merge pull request #379 from afshin/debug-open-browser-flags
Enable extensions to set debug and open-browser flags
2 parents d4438a2 + abe6f93 commit ee88147

File tree

2 files changed

+21
-11
lines changed

2 files changed

+21
-11
lines changed

jupyter_server/extension/application.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,9 @@ def get_extension_point(cls):
190190

191191
_log_formatter_cls = LogFormatter
192192

193+
# Whether this app is the starter app
194+
_is_starter_app = False
195+
193196
@default('log_level')
194197
def _default_log_level(self):
195198
return logging.INFO
@@ -376,9 +379,8 @@ def initialize_server(cls, argv=[], load_other_extensions=True, **kwargs):
376379
# initializes it.
377380
config = Config(cls._jupyter_server_config())
378381
serverapp = ServerApp.instance(**kwargs, argv=[], config=config)
382+
cls._is_starter_app = True
379383
serverapp.initialize(argv=argv, find_extensions=load_other_extensions)
380-
# Inform the serverapp that this extension app started the app.
381-
serverapp._starter_app_name = cls.name
382384
return serverapp
383385

384386
def initialize(self):
@@ -433,6 +435,8 @@ def _load_jupyter_server_extension(cls, serverapp):
433435
except KeyError:
434436
extension = cls()
435437
extension._link_jupyter_server_extension(serverapp)
438+
if cls._is_starter_app:
439+
serverapp._starter_app = extension
436440
extension.initialize()
437441
return extension
438442

jupyter_server/serverapp.py

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -517,10 +517,19 @@ def start(self):
517517
_("Allow the server to be run from root user.")
518518
)
519519
flags["no-browser"] = (
520-
{"ServerApp": {"open_browser": False}},
520+
{
521+
"ServerApp": {"open_browser": False},
522+
"ExtensionApp": {"open_browser": False}
523+
},
521524
_("Prevent the opening of the default url in the browser."),
522525
)
523-
526+
flags["debug"] = (
527+
{
528+
'ServerApp': {'log_level': 'DEBUG'},
529+
'ExtensionApp': {'log_level': 'DEBUG'}
530+
},
531+
_("Set debug level for the extension and underlying server applications.")
532+
)
524533
# Add notebook manager flags
525534
flags.update(boolean_flag('script', 'FileContentsManager.save_script',
526535
'DEPRECATED, IGNORED',
@@ -937,23 +946,20 @@ def _default_allow_remote(self):
937946
# It is sometimes important to know if + which another app (say a server extension)
938947
# started the serverapp to properly configure some traits.
939948
# This trait should not be configured by users. It will likely be set by ExtensionApp.
940-
_starter_app_name = Unicode(None, allow_none=True)
949+
_starter_app = Instance(JupyterApp, allow_none=True)
941950

942-
@validate('_starter_app_name')
951+
@validate('_starter_app')
943952
def _validate_starter_app(self, proposal):
944953
# Check that a previous server extension isn't named yet
945954
value = proposal["value"]
946-
if self._starter_app_name != None:
955+
if self._starter_app != None:
947956
raise TraitError("Another extension was already named as the starter_server_extension.")
948957
return value
949958

950959
@property
951960
def starter_app(self):
952961
"""Get the Extension that started this server."""
953-
name = self._starter_app_name
954-
if name is None:
955-
return
956-
return self.extension_manager.extension_points.get(name, None).app
962+
return self._starter_app
957963

958964
open_browser = Bool(False, config=True,
959965
help="""Whether to open in a browser after starting.

0 commit comments

Comments
 (0)