|
37 | 37 | except ImportError: #PY2 |
38 | 38 | from base64 import encodestring as encodebytes |
39 | 39 |
|
40 | | - |
41 | 40 | from jinja2 import Environment, FileSystemLoader |
42 | 41 |
|
43 | 42 | from notebook.transutils import trans, _ |
|
78 | 77 |
|
79 | 78 | from .base.handlers import Template404, RedirectWithParams |
80 | 79 | from .log import log_request |
81 | | -from .services.kernels.kernelmanager import MappingKernelManager |
| 80 | +from .services.kernels.kernelmanager import MappingKernelManager, AsyncMappingKernelManager, MappingKernelManagerBase |
82 | 81 | from .services.config import ConfigManager |
83 | 82 | from .services.contents.manager import ContentsManager |
84 | 83 | from .services.contents.filemanager import FileContentsManager |
@@ -1138,6 +1137,7 @@ def _update_mathjax_config(self, change): |
1138 | 1137 |
|
1139 | 1138 | kernel_manager_class = Type( |
1140 | 1139 | default_value=MappingKernelManager, |
| 1140 | + klass=MappingKernelManagerBase, |
1141 | 1141 | config=True, |
1142 | 1142 | help=_('The kernel manager class to use.') |
1143 | 1143 | ) |
@@ -1349,6 +1349,13 @@ def init_configurables(self): |
1349 | 1349 | connection_dir=self.runtime_dir, |
1350 | 1350 | kernel_spec_manager=self.kernel_spec_manager, |
1351 | 1351 | ) |
| 1352 | + # Ensure the appropriate jupyter_client is in place. |
| 1353 | + # TODO: remove once dependencies are updated. |
| 1354 | + if isinstance(self.kernel_manager, AsyncMappingKernelManager): |
| 1355 | + if not hasattr(self.kernel_manager, 'list_kernel_ids'): |
| 1356 | + raise RuntimeError("Using `AsyncMappingKernelManager` without an appropriate " |
| 1357 | + "jupyter_client installed! Upgrade jupyter_client and try again.") |
| 1358 | + |
1352 | 1359 | self.contents_manager = self.contents_manager_class( |
1353 | 1360 | parent=self, |
1354 | 1361 | log=self.log, |
|
0 commit comments