Skip to content

Commit fe66a80

Browse files
authored
Enable GatewayClient managers to be configurable (#834)
1 parent 05834ea commit fe66a80

File tree

1 file changed

+18
-12
lines changed

1 file changed

+18
-12
lines changed

jupyter_server/serverapp.py

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1475,18 +1475,28 @@ def _observe_contents_manager_class(self, change):
14751475
)
14761476

14771477
kernel_manager_class = Type(
1478-
default_value=AsyncMappingKernelManager,
14791478
klass=MappingKernelManager,
14801479
config=True,
14811480
help=_i18n("The kernel manager class to use."),
14821481
)
14831482

1483+
@default("kernel_manager_class")
1484+
def _default_kernel_manager_class(self):
1485+
if self.gateway_config.gateway_enabled:
1486+
return "jupyter_server.gateway.managers.GatewayMappingKernelManager"
1487+
return AsyncMappingKernelManager
1488+
14841489
session_manager_class = Type(
1485-
default_value=SessionManager,
14861490
config=True,
14871491
help=_i18n("The session manager class to use."),
14881492
)
14891493

1494+
@default("session_manager_class")
1495+
def _default_session_manager_class(self):
1496+
if self.gateway_config.gateway_enabled:
1497+
return "jupyter_server.gateway.managers.GatewaySessionManager"
1498+
return SessionManager
1499+
14901500
config_manager_class = Type(
14911501
default_value=ConfigManager,
14921502
config=True,
@@ -1496,7 +1506,6 @@ def _observe_contents_manager_class(self, change):
14961506
kernel_spec_manager = Instance(KernelSpecManager, allow_none=True)
14971507

14981508
kernel_spec_manager_class = Type(
1499-
default_value=KernelSpecManager,
15001509
config=True,
15011510
help="""
15021511
The kernel spec manager class to use. Should be a subclass
@@ -1507,6 +1516,12 @@ def _observe_contents_manager_class(self, change):
15071516
""",
15081517
)
15091518

1519+
@default("kernel_spec_manager_class")
1520+
def _default_kernel_spec_manager_class(self):
1521+
if self.gateway_config.gateway_enabled:
1522+
return "jupyter_server.gateway.managers.GatewayKernelSpecManager"
1523+
return KernelSpecManager
1524+
15101525
login_handler_class = Type(
15111526
default_value=LoginHandler,
15121527
klass=web.RequestHandler,
@@ -1848,15 +1863,6 @@ def init_configurables(self):
18481863
# this determination, instantiate the GatewayClient config singleton.
18491864
self.gateway_config = GatewayClient.instance(parent=self)
18501865

1851-
if self.gateway_config.gateway_enabled:
1852-
self.kernel_manager_class = (
1853-
"jupyter_server.gateway.managers.GatewayMappingKernelManager"
1854-
)
1855-
self.session_manager_class = "jupyter_server.gateway.managers.GatewaySessionManager"
1856-
self.kernel_spec_manager_class = (
1857-
"jupyter_server.gateway.managers.GatewayKernelSpecManager"
1858-
)
1859-
18601866
self.kernel_spec_manager = self.kernel_spec_manager_class(
18611867
parent=self,
18621868
)

0 commit comments

Comments
 (0)