Skip to content

Commit 25fd085

Browse files
authored
Merge pull request #353 from kevin-bates/enable-control-over-kernel-id
Wrap setting of kernel_id with method that can then be overridden in …
2 parents 5108f62 + 12da5fb commit 25fd085

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

jupyter_client/multikernelmanager.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,11 +86,11 @@ def start_kernel(self, kernel_name=None, **kwargs):
8686
"""Start a new kernel.
8787
8888
The caller can pick a kernel_id by passing one in as a keyword arg,
89-
otherwise one will be picked using a uuid.
89+
otherwise one will be generated using new_kernel_id().
9090
9191
The kernel ID for the newly started kernel is returned.
9292
"""
93-
kernel_id = kwargs.pop('kernel_id', unicode_type(uuid.uuid4()))
93+
kernel_id = kwargs.pop('kernel_id', self.new_kernel_id(**kwargs))
9494
if kernel_id in self:
9595
raise DuplicateKernelError('Kernel already exists: %s' % kernel_id)
9696

@@ -315,3 +315,12 @@ def connect_hb(self, kernel_id, identity=None):
315315
=======
316316
stream : zmq Socket or ZMQStream
317317
"""
318+
319+
def new_kernel_id(self, **kwargs):
320+
"""
321+
Returns the id to associate with the kernel for this request. Subclasses may override
322+
this method to substitute other sources of kernel ids.
323+
:param kwargs:
324+
:return: string-ized version 4 uuid
325+
"""
326+
return unicode_type(uuid.uuid4())

0 commit comments

Comments
 (0)