Skip to content

Commit ca73a87

Browse files
committed
avoid calling private method in subclasses of KernelSpecManager
on the result of a public overrideable method, which breaks subclasses that don't override get_all_specs
1 parent 78951c3 commit ca73a87

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

jupyter_client/kernelspec.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,14 @@ def get_all_specs(self):
254254
res = {}
255255
for kname, resource_dir in d.items():
256256
try:
257-
spec = self._get_kernel_spec_by_name(kname, resource_dir)
257+
if self.__class__ is KernelSpecManager:
258+
spec = self._get_kernel_spec_by_name(kname, resource_dir)
259+
else:
260+
# avoid calling private methods in subclasses,
261+
# which may have overridden find_kernel_specs
262+
# and get_kernel_spec, but not the newer get_all_specs
263+
spec = self.get_kernel_spec(kname)
264+
258265
res[kname] = {
259266
"resource_dir": resource_dir,
260267
"spec": spec.to_dict()

0 commit comments

Comments
 (0)