Skip to content

Commit fb91900

Browse files
Merge pull request #492 from martinRenou/cache_ports
Only cache ports if the cache_ports flag is set to True
2 parents f6ceeaa + 54a6be5 commit fb91900

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

jupyter_client/manager.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
from .localinterfaces import is_local_ip, local_ips
1919
from traitlets import (
2020
Any, Float, Instance, Unicode, List, Bool, Type, DottedObjectName, Dict,
21-
observe
21+
default, observe
2222
)
2323
from jupyter_client import (
2424
launch_kernel,
@@ -92,6 +92,12 @@ def kernel_spec(self):
9292
help="""Extra environment variables to be set for the kernel."""
9393
)
9494

95+
cache_ports = Bool(help='True if the MultiKernelManager should cache ports for this KernelManager instance')
96+
97+
@default('cache_ports')
98+
def _default_cache_ports(self):
99+
return self.transport == 'tcp'
100+
95101
@property
96102
def ipykernel(self):
97103
return self.kernel_name in {'python', 'python2', 'python3'}

jupyter_client/multikernelmanager.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from traitlets.config.configurable import LoggingConfigurable
1515
from ipython_genutils.importstring import import_item
1616
from traitlets import (
17-
Instance, Dict, Unicode, Any, DottedObjectName, observe, default
17+
Any, Bool, Dict, DottedObjectName, Instance, Unicode, default, observe
1818
)
1919
from ipython_genutils.py3compat import unicode_type
2020

@@ -78,7 +78,7 @@ def _create_kernel_manager_factory(self):
7878
def create_kernel_manager(*args, **kwargs):
7979
km = kernel_manager_ctor(*args, **kwargs)
8080

81-
if km.transport == 'tcp':
81+
if km.cache_ports:
8282
km.shell_port = self._find_available_port(km.ip)
8383
km.iopub_port = self._find_available_port(km.ip)
8484
km.stdin_port = self._find_available_port(km.ip)
@@ -168,17 +168,17 @@ def shutdown_kernel(self, kernel_id, now=False, restart=False):
168168
"""
169169
self.log.info("Kernel shutdown: %s" % kernel_id)
170170

171-
kernel = self.get_kernel(kernel_id)
171+
km = self.get_kernel(kernel_id)
172172

173173
ports = (
174-
kernel.shell_port, kernel.iopub_port, kernel.stdin_port,
175-
kernel.hb_port, kernel.control_port
174+
km.shell_port, km.iopub_port, km.stdin_port,
175+
km.hb_port, km.control_port
176176
)
177177

178-
kernel.shutdown_kernel(now=now, restart=restart)
178+
km.shutdown_kernel(now=now, restart=restart)
179179
self.remove_kernel(kernel_id)
180180

181-
if not restart and kernel.transport == 'tcp':
181+
if km.cache_ports and not restart:
182182
for port in ports:
183183
self.currently_used_ports.remove(port)
184184

0 commit comments

Comments
 (0)