From aed23d444c6f45e42b45c137bfe9455c88d03620 Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Thu, 18 Apr 2024 16:50:26 -0400 Subject: [PATCH] ENH: Consolidate JUPYTERLAB and JUPYTER_NOTEBOOK Env's into JUPYTER With Jupyter Lab 4 / Jupyter Notebook 7, we cannot detect the difference and there is not a difference in how we deal with them. --- examples/integrations/dask/DaskArray.ipynb | 2 +- itkwidgets/integrations/environment.py | 31 ++++++++++++---------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/examples/integrations/dask/DaskArray.ipynb b/examples/integrations/dask/DaskArray.ipynb index 03a93b78..33a9ddcb 100644 --- a/examples/integrations/dask/DaskArray.ipynb +++ b/examples/integrations/dask/DaskArray.ipynb @@ -35,7 +35,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "ENVIRONMENT: Env.JUPYTERLAB\n" + "ENVIRONMENT: Env.JUPYTER\n" ] } ], diff --git a/itkwidgets/integrations/environment.py b/itkwidgets/integrations/environment.py index ffc84549..a951329e 100644 --- a/itkwidgets/integrations/environment.py +++ b/itkwidgets/integrations/environment.py @@ -6,8 +6,7 @@ class Env(Enum): - JUPYTER_NOTEBOOK = 'notebook' - JUPYTERLAB = 'lab' + JUPYTER = 'jupyter' JUPYTERLITE = 'lite' SAGEMAKER = 'sagemaker' HYPHA = 'hypha' @@ -24,9 +23,7 @@ def find_env(): parent_header = get_ipython().parent_header username = parent_header['header']['username'] if username == '': - return Env.JUPYTERLAB - elif username == 'username': - return Env.JUPYTER_NOTEBOOK + return Env.JUPYTER else: return Env.SAGEMAKER except: @@ -39,15 +36,21 @@ def find_env(): if ENVIRONMENT is not Env.JUPYTERLITE and ENVIRONMENT is not Env.HYPHA: if ENVIRONMENT is not Env.COLAB: - if ENVIRONMENT is Env.JUPYTER_NOTEBOOK: - notebook_version = importlib_metadata.version('notebook') - if version.parse(notebook_version) < version.parse('7'): - raise RuntimeError('itkwidgets 1.0a51 and newer requires Jupyter notebook>=7.') - elif ENVIRONMENT is Env.JUPYTERLAB: - lab_version = importlib_metadata.version('jupyterlab') - if version.parse(lab_version) < version.parse('4'): - raise RuntimeError('itkwidgets 1.0a51 and newer requires jupyterlab>=4.') - + if ENVIRONMENT is Env.JUPYTER: + try: + notebook_version = importlib_metadata.version('notebook') + if version.parse(notebook_version) < version.parse('7'): + raise RuntimeError('itkwidgets 1.0a51 and newer requires Jupyter notebook>=7.') + except importlib_metadata.PackageNotFoundError: + # notebook may not be available + pass + try: + lab_version = importlib_metadata.version('jupyterlab') + if version.parse(lab_version) < version.parse('4'): + raise RuntimeError('itkwidgets 1.0a51 and newer requires jupyterlab>=4.') + except importlib_metadata.PackageNotFoundError: + # jupyterlab may not be available + pass try: import_module("imjoy-jupyterlab-extension") except ModuleNotFoundError: