Skip to content

Commit 8da3a6f

Browse files
kevin-batestoonijn
authored andcommitted
Move duplicated methods to mixin, fix mixin order
1 parent c897015 commit 8da3a6f

File tree

1 file changed

+34
-66
lines changed

1 file changed

+34
-66
lines changed

notebook/services/kernels/kernelmanager.py

Lines changed: 34 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,38 @@ def __init__(self, **kwargs):
139139
self.kernel_culler = KernelCuller(parent=self)
140140
self.activity_monitor = ActivityMonitor(parent=self)
141141

142+
def kernel_model(self, kernel_id):
143+
"""Return a JSON-safe dict representing a kernel
144+
145+
For use in representing kernels in the JSON APIs.
146+
"""
147+
self._check_kernel_id(kernel_id)
148+
kernel = self._kernels[kernel_id]
149+
150+
model = {
151+
"id":kernel_id,
152+
"name": kernel.kernel_name,
153+
"last_activity": isoformat(kernel.last_activity),
154+
"execution_state": kernel.execution_state,
155+
"connections": self._kernel_connections[kernel_id],
156+
}
157+
return model
158+
159+
def list_kernels(self):
160+
"""Returns a list of kernel models relative to the running kernels."""
161+
kernels = []
162+
kernel_ids = self.list_kernel_ids()
163+
for kernel_id in kernel_ids:
164+
model = self.kernel_model(kernel_id)
165+
kernels.append(model)
166+
return kernels
167+
168+
# override _check_kernel_id to raise 404 instead of KeyError
169+
def _check_kernel_id(self, kernel_id):
170+
"""Check a that a kernel_id exists and raise 404 if not."""
171+
if kernel_id not in self:
172+
raise web.HTTPError(404, u'Kernel does not exist: %s' % kernel_id)
173+
142174
def cwd_for_path(self, path):
143175
"""Turn API path into absolute OS path."""
144176
os_path = to_os_path(path, self.root_dir)
@@ -223,7 +255,7 @@ def cull_kernel_if_idle(self, kernel_id):
223255
self.kernel_culler.cull_kernel_if_idle(kernel_id)
224256

225257

226-
class MappingKernelManager(MultiKernelManager, MappingKernelManagerBase):
258+
class MappingKernelManager(MappingKernelManagerBase, MultiKernelManager):
227259
"""A KernelManager that handles notebook mapping and HTTP error handling"""
228260

229261
@default('kernel_manager_class')
@@ -349,40 +381,8 @@ def on_restart_failed():
349381
# wait for restart to complete
350382
yield future
351383

352-
def kernel_model(self, kernel_id):
353-
"""Return a JSON-safe dict representing a kernel
354-
355-
For use in representing kernels in the JSON APIs.
356-
"""
357-
self._check_kernel_id(kernel_id)
358-
kernel = self._kernels[kernel_id]
359-
360-
model = {
361-
"id":kernel_id,
362-
"name": kernel.kernel_name,
363-
"last_activity": isoformat(kernel.last_activity),
364-
"execution_state": kernel.execution_state,
365-
"connections": self._kernel_connections[kernel_id],
366-
}
367-
return model
368-
369-
def list_kernels(self):
370-
"""Returns a list of kernel models relative to the running kernels."""
371-
kernels = []
372-
kernel_ids = self.list_kernel_ids()
373-
for kernel_id in kernel_ids:
374-
model = self.kernel_model(kernel_id)
375-
kernels.append(model)
376-
return kernels
377-
378-
# override _check_kernel_id to raise 404 instead of KeyError
379-
def _check_kernel_id(self, kernel_id):
380-
"""Check a that a kernel_id exists and raise 404 if not."""
381-
if kernel_id not in self:
382-
raise web.HTTPError(404, u'Kernel does not exist: %s' % kernel_id)
383-
384384

385-
class AsyncMappingKernelManager(AsyncMultiKernelManager, MappingKernelManagerBase):
385+
class AsyncMappingKernelManager(MappingKernelManagerBase, AsyncMultiKernelManager):
386386
"""A KernelManager that handles notebook mapping and HTTP error handling using coroutines throughout"""
387387

388388
@default('kernel_manager_class')
@@ -504,38 +504,6 @@ def on_restart_failed():
504504
timeout = loop.add_timeout(loop.time() + self.kernel_info_timeout, on_timeout)
505505
return future
506506

507-
def kernel_model(self, kernel_id):
508-
"""Return a JSON-safe dict representing a kernel
509-
510-
For use in representing kernels in the JSON APIs.
511-
"""
512-
self._check_kernel_id(kernel_id)
513-
kernel = self._kernels[kernel_id]
514-
515-
model = {
516-
"id":kernel_id,
517-
"name": kernel.kernel_name,
518-
"last_activity": isoformat(kernel.last_activity),
519-
"execution_state": kernel.execution_state,
520-
"connections": self._kernel_connections[kernel_id],
521-
}
522-
return model
523-
524-
def list_kernels(self):
525-
"""Returns a list of kernel models relative to the running kernels."""
526-
kernels = []
527-
kernel_ids = self.list_kernel_ids()
528-
for kernel_id in kernel_ids:
529-
model = self.kernel_model(kernel_id)
530-
kernels.append(model)
531-
return kernels
532-
533-
# override _check_kernel_id to raise 404 instead of KeyError
534-
def _check_kernel_id(self, kernel_id):
535-
"""Check a that a kernel_id exists and raise 404 if not."""
536-
if kernel_id not in self:
537-
raise web.HTTPError(404, u'Kernel does not exist: %s' % kernel_id)
538-
539507

540508
class ActivityMonitor(LoggingConfigurable):
541509
"""Establishes activity recorder for each active kernel"""

0 commit comments

Comments
 (0)