From 52cb38ace94143a0ac6b9d3c5f5d98e2e97ced7e Mon Sep 17 00:00:00 2001 From: jprochazk Date: Thu, 7 Nov 2024 12:34:46 +0100 Subject: [PATCH 1/2] check version mismatch on first import --- rerun_py/rerun_sdk/rerun/notebook.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/rerun_py/rerun_sdk/rerun/notebook.py b/rerun_py/rerun_sdk/rerun/notebook.py index b10356e8e5a5..9e5a887906a7 100644 --- a/rerun_py/rerun_sdk/rerun/notebook.py +++ b/rerun_py/rerun_sdk/rerun/notebook.py @@ -37,6 +37,7 @@ def set_default_size(*, width: int | None, height: int | None) -> None: if height is not None: _default_height = height +_version_mismatch_checked = False class Viewer: """ @@ -80,6 +81,19 @@ def __init__( """ try: + global _version_mismatch_checked + if not _version_mismatch_checked: + import warnings + import importlib.metadata + rerun_notebook_version = importlib.metadata.version("rerun-notebook") + rerun_version = importlib.metadata.version("rerun-sdk") + if rerun_version != rerun_notebook_version: + warnings.warn( + f"rerun-notebook version mismatch: rerun-sdk {rerun_version}, rerun-notebook {rerun_notebook_version}", + category=ImportWarning, + ) + _version_mismatch_checked = True + from rerun_notebook import Viewer as _Viewer # type: ignore[attr-defined] except ImportError: logging.error("Could not import rerun_notebook. Please install `rerun-notebook`.") From 74726b100e10fb2c84c4d87108b046990791cfc2 Mon Sep 17 00:00:00 2001 From: jprochazk Date: Thu, 7 Nov 2024 14:06:14 +0100 Subject: [PATCH 2/2] fmt --- rerun_py/rerun_sdk/rerun/notebook.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rerun_py/rerun_sdk/rerun/notebook.py b/rerun_py/rerun_sdk/rerun/notebook.py index 9e5a887906a7..6d79b6c97113 100644 --- a/rerun_py/rerun_sdk/rerun/notebook.py +++ b/rerun_py/rerun_sdk/rerun/notebook.py @@ -37,8 +37,10 @@ def set_default_size(*, width: int | None, height: int | None) -> None: if height is not None: _default_height = height + _version_mismatch_checked = False + class Viewer: """ A viewer embeddable in a notebook. @@ -83,8 +85,9 @@ def __init__( try: global _version_mismatch_checked if not _version_mismatch_checked: - import warnings import importlib.metadata + import warnings + rerun_notebook_version = importlib.metadata.version("rerun-notebook") rerun_version = importlib.metadata.version("rerun-sdk") if rerun_version != rerun_notebook_version: