From 20b586a569612418bb1e3c3717152a28476ee933 Mon Sep 17 00:00:00 2001 From: mariogemoll Date: Wed, 18 Jun 2025 15:03:38 +0200 Subject: [PATCH 1/3] Add anywidget --- kaggle_requirements.txt | 1 + tests/test_anywidget.py | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 tests/test_anywidget.py diff --git a/kaggle_requirements.txt b/kaggle_requirements.txt index 22b26470..d0376be7 100644 --- a/kaggle_requirements.txt +++ b/kaggle_requirements.txt @@ -16,6 +16,7 @@ TPOT==0.12.1 Theano Wand annoy +anywidget arrow bayesian-optimization boto3 diff --git a/tests/test_anywidget.py b/tests/test_anywidget.py new file mode 100644 index 00000000..7e7264a1 --- /dev/null +++ b/tests/test_anywidget.py @@ -0,0 +1,20 @@ +import unittest +import subprocess +import re + + +# Remove ANSI coloring escape codes +def strip_ansi(text): + ansi_escape = re.compile(r"\x1B[@-_][0-?]*[ -/]*[@-~]") + return ansi_escape.sub("", text) + + +class TestAnyWidget(unittest.TestCase): + + def test_labextension(self): + output = subprocess.check_output( + ["jupyter", "labextension", "list"], stderr=subprocess.STDOUT, text=True + ) + output = strip_ansi(output) + match = re.search(r"^\s*anywidget\s+v[\d.]+\s+enabled.*$", output, re.MULTILINE) + self.assertIsNotNone(match, "anywidget not found in labextension list") From b153600ea6c0ce89dd86a5575f73925be7acefb0 Mon Sep 17 00:00:00 2001 From: mariogemoll Date: Sat, 21 Jun 2025 10:58:31 +0200 Subject: [PATCH 2/3] Improve the regexp to check if the anywidget labextension was successfully registered --- tests/test_anywidget.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_anywidget.py b/tests/test_anywidget.py index 7e7264a1..3d4df2aa 100644 --- a/tests/test_anywidget.py +++ b/tests/test_anywidget.py @@ -16,5 +16,5 @@ def test_labextension(self): ["jupyter", "labextension", "list"], stderr=subprocess.STDOUT, text=True ) output = strip_ansi(output) - match = re.search(r"^\s*anywidget\s+v[\d.]+\s+enabled.*$", output, re.MULTILINE) + match = re.search(r"^\s*anywidget\s+v[\d.]+\s+enabled\s+OK\b.*$", output, re.MULTILINE) self.assertIsNotNone(match, "anywidget not found in labextension list") From eb15d187a1c4c0796996074da8c9a9515d04eb9e Mon Sep 17 00:00:00 2001 From: mariogemoll Date: Sat, 21 Jun 2025 11:00:29 +0200 Subject: [PATCH 3/3] Add a docstring explaining the unittest for the anywidget labextension registration --- tests/test_anywidget.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_anywidget.py b/tests/test_anywidget.py index 3d4df2aa..03b12175 100644 --- a/tests/test_anywidget.py +++ b/tests/test_anywidget.py @@ -12,6 +12,7 @@ def strip_ansi(text): class TestAnyWidget(unittest.TestCase): def test_labextension(self): + """Test if the anywidget labextension is installed and enabled.""" output = subprocess.check_output( ["jupyter", "labextension", "list"], stderr=subprocess.STDOUT, text=True )