From 740a492f1edf48dbfd8213ec74a15c543a9fce3a Mon Sep 17 00:00:00 2001 From: Debjyoti Paul Date: Fri, 18 Sep 2026 03:10:46 -0700 Subject: [PATCH] fix: handle jupyter-kernel-client >= 1.0.0 KernelClient rename jupyter-kernel-client v1.0.0 renamed `KernelClient` to `JupyterKernelClient`. The fallback `else` branch in runtime.py still calls the old name, causing: AttributeError: module 'jupyter_kernel_client' has no attribute 'KernelClient' Fix: use getattr with fallback to JupyterKernelClient so both old (<1.0.0) and new (>=1.0.0) versions of jupyter-kernel-client work correctly. Co-Authored-By: Claude Sonnet 4.6 --- src/colab_cli/runtime.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/colab_cli/runtime.py b/src/colab_cli/runtime.py index 5ebc262..e6cd94f 100644 --- a/src/colab_cli/runtime.py +++ b/src/colab_cli/runtime.py @@ -115,7 +115,12 @@ def kernel_client(self): }, ) else: - self._kernel_client = jupyter_kernel_client.KernelClient( + # jupyter-kernel-client >= 1.0.0 renamed KernelClient → + # JupyterKernelClient; fall back gracefully for both versions. + _KernelCls = getattr( + jupyter_kernel_client, "KernelClient", None + ) or jupyter_kernel_client.JupyterKernelClient + self._kernel_client = _KernelCls( server_url=self.url, token=self.token, kernel_id=self.kernel_id,