|
10 | 10 | import importlib
|
11 | 11 | import signal
|
12 | 12 |
|
| 13 | +from notebook.services.kernels.kernelmanager import MappingKernelManager |
| 14 | + |
13 | 15 | try:
|
14 | 16 | from urlparse import urlparse
|
15 | 17 | except ImportError:
|
16 | 18 | from urllib.parse import urlparse
|
17 | 19 |
|
18 |
| -from traitlets import Unicode, Integer, default, observe |
| 20 | +from traitlets import Unicode, Integer, default, observe, Type, Instance |
19 | 21 |
|
20 | 22 | from jupyter_core.application import JupyterApp, base_aliases
|
21 | 23 | from jupyter_client.kernelspec import KernelSpecManager
|
@@ -277,6 +279,27 @@ def keyfile_default(self):
|
277 | 279 | def client_ca_default(self):
|
278 | 280 | return os.getenv(self.client_ca_env)
|
279 | 281 |
|
| 282 | + kernel_spec_manager = Instance(KernelSpecManager, allow_none=True) |
| 283 | + |
| 284 | + kernel_spec_manager_class = Type( |
| 285 | + default_value=KernelSpecManager, |
| 286 | + config=True, |
| 287 | + help=""" |
| 288 | + The kernel spec manager class to use. Should be a subclass |
| 289 | + of `jupyter_client.kernelspec.KernelSpecManager`. |
| 290 | +
|
| 291 | + The Api of KernelSpecManager is provisional and might change |
| 292 | + without warning between this version of Jupyter and the next stable one. |
| 293 | + """ |
| 294 | + ) |
| 295 | + |
| 296 | + kernel_manager_class = Type( |
| 297 | + klass=MappingKernelManager, |
| 298 | + default_value=SeedingMappingKernelManager, |
| 299 | + config=True, |
| 300 | + help="""The kernel manager class to use.""" |
| 301 | + ) |
| 302 | + |
280 | 303 | def _load_api_module(self, module_name):
|
281 | 304 | """Tries to import the given module name.
|
282 | 305 |
|
@@ -366,7 +389,11 @@ def init_configurables(self):
|
366 | 389 | kwargs = {}
|
367 | 390 | if self.default_kernel_name:
|
368 | 391 | kwargs['default_kernel_name'] = self.default_kernel_name
|
369 |
| - self.kernel_manager = SeedingMappingKernelManager( |
| 392 | + |
| 393 | + self.kernel_spec_manager = self.kernel_spec_manager_class( |
| 394 | + parent=self, |
| 395 | + ) |
| 396 | + self.kernel_manager = self.kernel_manager_class( |
370 | 397 | parent=self,
|
371 | 398 | log=self.log,
|
372 | 399 | connection_dir=self.runtime_dir,
|
|
0 commit comments