Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-ipywidgets for 
openSUSE:Factory checked in at 2023-04-04 21:27:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-ipywidgets (Old)
 and      /work/SRC/openSUSE:Factory/.python-ipywidgets.new.19717 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-ipywidgets"

Tue Apr  4 21:27:33 2023 rev:13 rq:1077249 version:8.0.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-ipywidgets/python-ipywidgets.changes      
2022-12-26 23:28:10.768974086 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-ipywidgets.new.19717/python-ipywidgets.changes
   2023-04-04 21:27:57.135758369 +0200
@@ -1,0 +2,17 @@
+Tue Apr  4 15:32:43 UTC 2023 - Ben Greiner <c...@bnavigator.de>
+
+- Update to 8.0.6
+  * Fix: revert removing ipykernel dependency #3749
+  * Fix: structuredClone broke default serializer that depended on
+    JSON/toJSON #3738
+  * Fix: comm/ipykernel/manager runtime issues: #3740, #3737
+- Release 8.0.5
+  * Fix: propertly typed Comm interface #3722
+  * Fix: support the comm package #3533
+  * Fix: use of structuredClone allows for binary traits out of the
+    box #3689
+  * Fix: combobox update issue #3681
+  * Fix: add grey as valid color #3671
+  * Fix: deprecation warning when using interact #3669
+
+-------------------------------------------------------------------

Old:
----
  ipywidgets-8.0.4.tar.gz

New:
----
  ipywidgets-8.0.6.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-ipywidgets.spec ++++++
--- /var/tmp/diff_new_pack.AvhXue/_old  2023-04-04 21:27:57.615761093 +0200
+++ /var/tmp/diff_new_pack.AvhXue/_new  2023-04-04 21:27:57.623761139 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-ipywidgets
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           python-ipywidgets
-Version:        8.0.4
+Version:        8.0.6
 Release:        0
 Summary:        IPython HTML widgets for Jupyter
 License:        BSD-3-Clause
@@ -33,23 +33,21 @@
 BuildRequires:  unzip
 Requires:       python-ipykernel >= 4.5.1
 Requires:       python-ipython >= 6.1.0
-Requires:       python-ipython_genutils >= 0.2
 Requires:       python-traitlets >= 4.3.1
-Requires:       (python-jupyterlab_widgets >= 3.0 with 
python-jupyterlab_widgets < 4)
-Requires:       (python-widgetsnbextension >= 4.0 with 
python-widgetsnbextension < 5)
+Requires:       (python-jupyterlab_widgets >= 3.0.7 with 
python-jupyterlab_widgets < 4)
+Requires:       (python-widgetsnbextension >= 4.0.7 with 
python-widgetsnbextension < 5)
 Provides:       python-jupyter_ipywidgets = %{version}
 Obsoletes:      python-jupyter_ipywidgets < %{version}
 BuildArch:      noarch
 # SECTION test requirements
 BuildRequires:  %{python_module ipykernel >= 4.5.1}
 BuildRequires:  %{python_module ipython >= 6.1.0}
-BuildRequires:  %{python_module ipython_genutils >= 0.2}
 BuildRequires:  %{python_module jsonschema}
-BuildRequires:  %{python_module jupyterlab_widgets >= 3 with 
%python-jupyterlab_widgets < 4}
+BuildRequires:  %{python_module jupyterlab_widgets >= 3.0.7 with 
%python-jupyterlab_widgets < 4}
 BuildRequires:  %{python_module pytest >= 3.6.0}
 BuildRequires:  %{python_module pytz}
 BuildRequires:  %{python_module traitlets >= 4.3.1}
-BuildRequires:  %{python_module widgetsnbextension >= 4.0 with 
%python-widgetsnbextension < 5}
+BuildRequires:  %{python_module widgetsnbextension >= 4.0.7 with 
%python-widgetsnbextension < 5}
 # /SECTION
 %if "%{python_flavor}" == "python3" || "%{?python_provides}"  == "python3"
 Provides:       jupyter-ipywidgets = %{version}

++++++ ipywidgets-8.0.4.tar.gz -> ipywidgets-8.0.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipywidgets-8.0.4/PKG-INFO 
new/ipywidgets-8.0.6/PKG-INFO
--- old/ipywidgets-8.0.4/PKG-INFO       2022-12-22 10:14:32.496301000 +0100
+++ new/ipywidgets-8.0.6/PKG-INFO       2023-03-28 17:16:38.152982000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: ipywidgets
-Version: 8.0.4
+Version: 8.0.6
 Summary: Jupyter interactive widgets
 Home-page: http://jupyter.org
 Author: Jupyter Development Team
@@ -31,7 +31,7 @@
 # ipywidgets: Interactive HTML Widgets
 
 **ipywidgets**, also known as jupyter-widgets or simply widgets, are
-[interactive HTML 
widgets](https://github.com/jupyter-widgets/ipywidgets/blob/master/docs/source/examples/Index.ipynb)
+[interactive HTML 
widgets](https://github.com/jupyter-widgets/ipywidgets/blob/main/docs/source/examples/Index.ipynb)
 for Jupyter notebooks and the IPython kernel.
 
 This package contains the python implementation of the core interactive 
widgets bundled in ipywidgets.
@@ -39,7 +39,7 @@
 ## Core Interactive Widgets
 
 The fundamental widgets provided by this library are called core interactive
-widgets. A [demonstration 
notebook](https://github.com/jupyter-widgets/ipywidgets/blob/master/docs/source/examples/Index.ipynb)
+widgets. A [demonstration 
notebook](https://github.com/jupyter-widgets/ipywidgets/blob/main/docs/source/examples/Index.ipynb)
 provides an overview of the core interactive widgets, including:
 
 - sliders
@@ -49,7 +49,4 @@
 - display areas
 - and more
 
-
 For more information, see the main 
[documentation](https://github.com/jupyter-widgets/ipywidgets#readme).
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipywidgets-8.0.4/README.md 
new/ipywidgets-8.0.6/README.md
--- old/ipywidgets-8.0.4/README.md      2022-12-22 09:55:44.000000000 +0100
+++ new/ipywidgets-8.0.6/README.md      2023-03-28 17:07:31.000000000 +0200
@@ -1,7 +1,7 @@
 # ipywidgets: Interactive HTML Widgets
 
 **ipywidgets**, also known as jupyter-widgets or simply widgets, are
-[interactive HTML 
widgets](https://github.com/jupyter-widgets/ipywidgets/blob/master/docs/source/examples/Index.ipynb)
+[interactive HTML 
widgets](https://github.com/jupyter-widgets/ipywidgets/blob/main/docs/source/examples/Index.ipynb)
 for Jupyter notebooks and the IPython kernel.
 
 This package contains the python implementation of the core interactive 
widgets bundled in ipywidgets.
@@ -9,7 +9,7 @@
 ## Core Interactive Widgets
 
 The fundamental widgets provided by this library are called core interactive
-widgets. A [demonstration 
notebook](https://github.com/jupyter-widgets/ipywidgets/blob/master/docs/source/examples/Index.ipynb)
+widgets. A [demonstration 
notebook](https://github.com/jupyter-widgets/ipywidgets/blob/main/docs/source/examples/Index.ipynb)
 provides an overview of the core interactive widgets, including:
 
 - sliders
@@ -19,7 +19,4 @@
 - display areas
 - and more
 
-
 For more information, see the main 
[documentation](https://github.com/jupyter-widgets/ipywidgets#readme).
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipywidgets-8.0.4/ipywidgets/__init__.py 
new/ipywidgets-8.0.6/ipywidgets/__init__.py
--- old/ipywidgets-8.0.4/ipywidgets/__init__.py 2022-12-22 09:55:44.000000000 
+0100
+++ new/ipywidgets-8.0.6/ipywidgets/__init__.py 2023-03-28 17:07:35.000000000 
+0200
@@ -21,28 +21,40 @@
 from ._version import __version__, __protocol_version__, 
__jupyter_widgets_controls_version__, __jupyter_widgets_base_version__
 
 import os
+
+from traitlets import link, dlink
 from IPython import get_ipython
+try:
+    from comm import get_comm_manager
+except ImportError:
+    def get_comm_manager():
+        ip = get_ipython()
+
+        if ip is not None and getattr(ip, "kernel", None) is not None:
+            return get_ipython().kernel.comm_manager
+
 from .widgets import *
-from traitlets import link, dlink
+
 
 def load_ipython_extension(ip):
     """Set up Jupyter to work with widgets"""
     if not hasattr(ip, 'kernel'):
         return
-    register_comm_target(ip.kernel)
+    register_comm_target()
 
 def register_comm_target(kernel=None):
     """Register the jupyter.widget comm target"""
-    if kernel is None:
-        kernel = get_ipython().kernel
-    kernel.comm_manager.register_target('jupyter.widget', 
Widget.handle_comm_opened)
-    kernel.comm_manager.register_target('jupyter.widget.control', 
Widget.handle_control_comm_opened)
+    comm_manager = get_comm_manager()
+    if comm_manager is None:
+        return
+    comm_manager.register_target('jupyter.widget', Widget.handle_comm_opened)
+    comm_manager.register_target('jupyter.widget.control', 
Widget.handle_control_comm_opened)
 
 def _handle_ipython():
     """Register with the comm target at import if running in Jupyter"""
     ip = get_ipython()
     if ip is None:
         return
-    load_ipython_extension(ip)
+    register_comm_target()
 
 _handle_ipython()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipywidgets-8.0.4/ipywidgets/_version.py 
new/ipywidgets-8.0.6/ipywidgets/_version.py
--- old/ipywidgets-8.0.4/ipywidgets/_version.py 2022-12-22 10:14:04.000000000 
+0100
+++ new/ipywidgets-8.0.6/ipywidgets/_version.py 2023-03-28 17:15:08.000000000 
+0200
@@ -1,7 +1,7 @@
 # Copyright (c) Jupyter Development Team.
 # Distributed under the terms of the Modified BSD License.
 
-__version__ = '8.0.4'
+__version__ = '8.0.6'
 
 __protocol_version__ = '2.1.0'
 __control_protocol_version__ = '1.0.0'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipywidgets-8.0.4/ipywidgets/tests/test_embed.py 
new/ipywidgets-8.0.6/ipywidgets/tests/test_embed.py
--- old/ipywidgets-8.0.4/ipywidgets/tests/test_embed.py 2022-12-22 
09:55:44.000000000 +0100
+++ new/ipywidgets-8.0.6/ipywidgets/tests/test_embed.py 2023-03-28 
17:07:31.000000000 +0200
@@ -9,6 +9,9 @@
 
 import traitlets
 
+# This has a byproduct of setting up the comms
+import ipykernel.ipkernel
+
 from ..widgets import IntSlider, IntText, Text, Widget, jslink, HBox, 
widget_serialization, widget as widget_module
 from ..embed import embed_data, embed_snippet, embed_minimal_html, 
dependency_state
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipywidgets-8.0.4/ipywidgets/widgets/interaction.py 
new/ipywidgets-8.0.6/ipywidgets/widgets/interaction.py
--- old/ipywidgets-8.0.4/ipywidgets/widgets/interaction.py      2022-12-22 
09:55:44.000000000 +0100
+++ new/ipywidgets-8.0.6/ipywidgets/widgets/interaction.py      2023-03-28 
17:07:31.000000000 +0200
@@ -208,7 +208,8 @@
             # invoke execution.
             for w in self.kwargs_widgets:
                 if isinstance(w, Text):
-                    w.on_submit(self.update)
+                    w.continuous_update = False
+                    w.observe(self.update, names='value')
         else:
             for widget in self.kwargs_widgets:
                 widget.observe(self.update, names='value')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ipywidgets-8.0.4/ipywidgets/widgets/tests/test_interaction.py 
new/ipywidgets-8.0.6/ipywidgets/widgets/tests/test_interaction.py
--- old/ipywidgets-8.0.4/ipywidgets/widgets/tests/test_interaction.py   
2022-12-22 09:55:44.000000000 +0100
+++ new/ipywidgets-8.0.6/ipywidgets/widgets/tests/test_interaction.py   
2023-03-28 17:07:31.000000000 +0200
@@ -624,4 +624,3 @@
     with open(os.path.join(os.path.dirname(os.path.realpath(__file__)), 
'../../', 'state.schema.json')) as f:
         schema = json.load(f)
     jsonschema.validate(state, schema)
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ipywidgets-8.0.4/ipywidgets/widgets/tests/test_widget_output.py 
new/ipywidgets-8.0.6/ipywidgets/widgets/tests/test_widget_output.py
--- old/ipywidgets-8.0.4/ipywidgets/widgets/tests/test_widget_output.py 
2022-12-22 09:55:44.000000000 +0100
+++ new/ipywidgets-8.0.6/ipywidgets/widgets/tests/test_widget_output.py 
2023-03-28 17:07:31.000000000 +0200
@@ -202,14 +202,14 @@
 
     # Now try appending an Image.
     image_data = b"foobar"
-    image_data_b64 = 'Zm9vYmFy\n'
 
     widget.append_display_data(Image(image_data, width=123, height=456))
-    expected += (
+    # Old ipykernel/IPython
+    expected1 = expected + (
         {
             'output_type': 'display_data',
             'data': {
-                'image/png': image_data_b64,
+                'image/png': 'Zm9vYmFy\n',
                 'text/plain': '<IPython.core.display.Image object>'
             },
             'metadata': {
@@ -220,4 +220,20 @@
             }
         },
     )
-    assert widget.outputs == expected, repr(widget.outputs)
+    # Latest ipykernel/IPython
+    expected2 = expected + (
+        {
+            'output_type': 'display_data',
+            'data': {
+                'image/png': 'Zm9vYmFy',
+                'text/plain': '<IPython.core.display.Image object>'
+            },
+            'metadata': {
+                'image/png': {
+                    'width': 123,
+                    'height': 456
+                }
+            }
+        },
+    )
+    assert widget.outputs == expected1 or widget.outputs == expected2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ipywidgets-8.0.4/ipywidgets/widgets/tests/test_widget_templates.py 
new/ipywidgets-8.0.6/ipywidgets/widgets/tests/test_widget_templates.py
--- old/ipywidgets-8.0.4/ipywidgets/widgets/tests/test_widget_templates.py      
2022-12-22 09:55:45.000000000 +0100
+++ new/ipywidgets-8.0.6/ipywidgets/widgets/tests/test_widget_templates.py      
2023-03-28 17:07:31.000000000 +0200
@@ -229,7 +229,7 @@
         assert box.layout.grid_template_areas == ('"top-left top-right"\n' +
                                                   '"bottom-left bottom-right"')
         # check whether frontend was informed
-        send_state.assert_called_once_with(key="grid_template_areas")
+        send_state.assert_called_with(key="grid_template_areas")
 
         box = widgets.TwoByTwoLayout(top_left=button1, top_right=button3,
                                      bottom_left=None, bottom_right=button4)
@@ -240,7 +240,7 @@
         box.merge = False
         assert box.layout.grid_template_areas == ('"top-left top-right"\n' +
                                                   '"bottom-left bottom-right"')
-        send_state.assert_called_once_with(key="grid_template_areas")
+        send_state.assert_called_with(key="grid_template_areas")
 
 
 class TestAppLayout(TestCase):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ipywidgets-8.0.4/ipywidgets/widgets/tests/test_widget_upload.py 
new/ipywidgets-8.0.6/ipywidgets/widgets/tests/test_widget_upload.py
--- old/ipywidgets-8.0.4/ipywidgets/widgets/tests/test_widget_upload.py 
2022-12-22 09:55:45.000000000 +0100
+++ new/ipywidgets-8.0.6/ipywidgets/widgets/tests/test_widget_upload.py 
2023-03-28 17:07:31.000000000 +0200
@@ -76,8 +76,8 @@
         from ipykernel.comm import Comm
         uploader = FileUpload()
         mock_comm = MagicMock(spec=Comm)
-        mock_comm.kernel = 'does not matter'
         mock_comm.send = MagicMock()
+        mock_comm.kernel = 'does not matter'
         uploader.comm = mock_comm
         message = {'value': [FILE_UPLOAD_FRONTEND_CONTENT]}
         uploader.set_state(message)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipywidgets-8.0.4/ipywidgets/widgets/tests/utils.py 
new/ipywidgets-8.0.6/ipywidgets/widgets/tests/utils.py
--- old/ipywidgets-8.0.4/ipywidgets/widgets/tests/utils.py      2022-12-22 
09:55:45.000000000 +0100
+++ new/ipywidgets-8.0.6/ipywidgets/widgets/tests/utils.py      2023-03-28 
17:07:31.000000000 +0200
@@ -1,31 +1,69 @@
 # Copyright (c) Jupyter Development Team.
 # Distributed under the terms of the Modified BSD License.
 
-from ipykernel.comm import Comm
 from ipywidgets import Widget
 import ipywidgets.widgets.widget
 
-class DummyComm(Comm):
+# The new comm package is not available in our Python 3.7 CI (older ipykernel 
version)
+try:
+    import comm
+    NEW_COMM_PACKAGE = True
+except ImportError:
+    NEW_COMM_PACKAGE = False
+
+import ipykernel.comm
+
+
+class DummyComm():
     comm_id = 'a-b-c-d'
     kernel = 'Truthy'
 
     def __init__(self, *args, **kwargs):
-        super().__init__(*args, **kwargs)
+        super().__init__()
         self.messages = []
 
     def open(self, *args, **kwargs):
         pass
 
+    def on_msg(self, *args, **kwargs):
+        pass
+
     def send(self, *args, **kwargs):
         self.messages.append((args, kwargs))
 
     def close(self, *args, **kwargs):
         pass
 
+
+def dummy_create_comm(**kwargs):
+    return DummyComm()
+
+
+def dummy_get_comm_manager(**kwargs):
+    return {}
+
+
 _widget_attrs = {}
 undefined = object()
 
+if NEW_COMM_PACKAGE:
+    orig_comm = ipykernel.comm.comm.BaseComm
+else:
+    orig_comm = ipykernel.comm.Comm
+orig_create_comm = None
+orig_get_comm_manager = None
+
+if NEW_COMM_PACKAGE:
+    orig_create_comm = comm.create_comm
+    orig_get_comm_manager = comm.get_comm_manager
+
 def setup_test_comm():
+    if NEW_COMM_PACKAGE:
+        comm.create_comm = dummy_create_comm
+        comm.get_comm_manager = dummy_get_comm_manager
+        ipykernel.comm.comm.BaseComm = DummyComm
+    else:
+        ipykernel.comm.Comm = DummyComm
     Widget.comm.klass = DummyComm
     ipywidgets.widgets.widget.Comm = DummyComm
     _widget_attrs['_repr_mimebundle_'] = Widget._repr_mimebundle_
@@ -34,8 +72,14 @@
     Widget._repr_mimebundle_ = raise_not_implemented
 
 def teardown_test_comm():
-    Widget.comm.klass = Comm
-    ipywidgets.widgets.widget.Comm = Comm
+    if NEW_COMM_PACKAGE:
+        comm.create_comm = orig_create_comm
+        comm.get_comm_manager = orig_get_comm_manager
+        ipykernel.comm.comm.BaseComm = orig_comm
+    else:
+        ipykernel.comm.Comm = orig_comm
+    Widget.comm.klass = orig_comm
+    ipywidgets.widgets.widget.Comm = orig_comm
     for attr, value in _widget_attrs.items():
         if value is undefined:
             delattr(Widget, attr)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipywidgets-8.0.4/ipywidgets/widgets/trait_types.py 
new/ipywidgets-8.0.6/ipywidgets/widgets/trait_types.py
--- old/ipywidgets-8.0.4/ipywidgets/widgets/trait_types.py      2022-12-22 
09:55:45.000000000 +0100
+++ new/ipywidgets-8.0.6/ipywidgets/widgets/trait_types.py      2023-03-28 
17:07:31.000000000 +0200
@@ -10,7 +10,7 @@
 import datetime as dt
 
 
-_color_names = ['aliceblue', 'antiquewhite', 'aqua', 'aquamarine', 'azure', 
'beige', 'bisque', 'black', 'blanchedalmond', 'blue', 'blueviolet', 'brown', 
'burlywood', 'cadetblue', 'chartreuse', 'chocolate', 'coral', 'cornflowerblue', 
'cornsilk', 'crimson', 'cyan', 'darkblue', 'darkcyan', 'darkgoldenrod', 
'darkgray', 'darkgreen', 'darkkhaki', 'darkmagenta', 'darkolivegreen', 
'darkorange', 'darkorchid', 'darkred', 'darksalmon', 'darkseagreen', 
'darkslateblue', 'darkslategray', 'darkturquoise', 'darkviolet', 'deeppink', 
'deepskyblue', 'dimgray', 'dodgerblue', 'firebrick', 'floralwhite', 
'forestgreen', 'fuchsia', 'gainsboro', 'ghostwhite', 'gold', 'goldenrod', 
'gray', 'green', 'greenyellow', 'honeydew', 'hotpink', 'indianred ', 'indigo ', 
'ivory', 'khaki', 'lavender', 'lavenderblush', 'lawngreen', 'lemonchiffon', 
'lightblue', 'lightcoral', 'lightcyan', 'lightgoldenrodyellow', 'lightgray', 
'lightgreen', 'lightpink', 'lightsalmon', 'lightseagreen', 'lightskyblue', 
'lightslategray', 'lights
 teelblue', 'lightyellow', 'lime', 'limegreen', 'linen', 'magenta', 'maroon', 
'mediumaquamarine', 'mediumblue', 'mediumorchid', 'mediumpurple', 
'mediumseagreen', 'mediumslateblue', 'mediumspringgreen', 'mediumturquoise', 
'mediumvioletred', 'midnightblue', 'mintcream', 'mistyrose', 'moccasin', 
'navajowhite', 'navy', 'oldlace', 'olive', 'olivedrab', 'orange', 'orangered', 
'orchid', 'palegoldenrod', 'palegreen', 'paleturquoise', 'palevioletred', 
'papayawhip', 'peachpuff', 'peru', 'pink', 'plum', 'powderblue', 'purple', 
'rebeccapurple', 'red', 'rosybrown', 'royalblue', 'saddlebrown', 'salmon', 
'sandybrown', 'seagreen', 'seashell', 'sienna', 'silver', 'skyblue', 
'slateblue', 'slategray', 'snow', 'springgreen', 'steelblue', 'tan', 'teal', 
'thistle', 'tomato', 'transparent', 'turquoise', 'violet', 'wheat', 'white', 
'whitesmoke', 'yellow', 'yellowgreen']
+_color_names = ['aliceblue', 'antiquewhite', 'aqua', 'aquamarine', 'azure', 
'beiae', 'bisque', 'black', 'blanchedalmond', 'blue', 'blueviolet', 'brown', 
'burlywood', 'cadetblue', 'chartreuse', 'chocolate', 'coral', 'cornflowerblue', 
'cornsilk', 'crimson', 'cyan', 'darkblue', 'darkcyan', 'darkgoldenrod', 
'darkgray', 'darkgrey', 'darkgreen', 'darkkhaki', 'darkmagenta', 
'darkolivegreen', 'darkorange', 'darkorchid', 'darkred', 'darksalmon', 
'darkseagreen', 'darkslateblue', 'darkslategray', 'darkslategrey', 
'darkturquoise', 'darkviolet', 'deeppink', 'deepskyblue', 'dimgray', 'dimgrey', 
'dodgerblue', 'firebrick', 'floralwhite', 'forestgreen', 'fuchsia', 
'gainsboro', 'ghostwhite', 'gold', 'goldenrod', 'gray', 'grey', 'green', 
'greenyellow', 'honeydew', 'hotpink', 'indianred ', 'indigo ', 'ivory', 
'khaki', 'lavender', 'lavenderblush', 'lawngreen', 'lemonchiffon', 'lightblue', 
'lightcoral', 'lightcyan', 'lightgoldenrodyellow', 'lightgray', 'lightgrey', 
'lightgreen', 'lightpink', 'lightsalmon
 ', 'lightseagreen', 'lightskyblue', 'lightslategray', 'lightslategrey', 
'lightsteelblue', 'lightyellow', 'lime', 'limegreen', 'linen', 'magenta', 
'maroon', 'mediumaquamarine', 'mediumblue', 'mediumorchid', 'mediumpurple', 
'mediumseagreen', 'mediumslateblue', 'mediumspringgreen', 'mediumturquoise', 
'mediumvioletred', 'midnightblue', 'mintcream', 'mistyrose', 'moccasin', 
'navajowhite', 'navy', 'oldlace', 'olive', 'olivedrab', 'orange', 'orangered', 
'orchid', 'palegoldenrod', 'palegreen', 'paleturquoise', 'palevioletred', 
'papayawhip', 'peachpuff', 'peru', 'pink', 'plum', 'powderblue', 'purple', 
'rebeccapurple', 'red', 'rosybrown', 'royalblue', 'saddlebrown', 'salmon', 
'sandybrown', 'seagreen', 'seashell', 'sienna', 'silver', 'skyblue', 
'slateblue', 'slategray', 'slategrey', 'snow', 'springgreen', 'steelblue', 
'tan', 'teal', 'thistle', 'tomato', 'transparent', 'turquoise', 'violet', 
'wheat', 'white', 'whitesmoke', 'yellow', 'yellowgreen']
 
 # Regex colors #fff and #ffffff
 _color_hex_re = re.compile(r'#[a-fA-F0-9]{3}(?:[a-fA-F0-9]{3})?$')
@@ -367,11 +367,11 @@
 
 
 # The regexp is taken
-# from https://github.com/d3/d3-format/blob/master/src/formatSpecifier.js
+# from https://github.com/d3/d3-format/blob/main/src/formatSpecifier.js
 _number_format_re = re.compile(r'^(?:(.)?([<>=^]))?([+\-\( 
])?([$#])?(0)?(\d+)?(,)?(\.\d+)?([a-z%])?$', re.I)
 
 # The valid types are taken from
-# https://github.com/d3/d3-format/blob/master/src/formatTypes.js
+# https://github.com/d3/d3-format/blob/main/src/formatTypes.js
 _number_format_types = {
     'e', 'f', 'g', 'r', 's', '%', 'p', 'b', 'o', 'd', 'x',
     'X', 'c', ''
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipywidgets-8.0.4/ipywidgets/widgets/widget.py 
new/ipywidgets-8.0.6/ipywidgets/widgets/widget.py
--- old/ipywidgets-8.0.4/ipywidgets/widgets/widget.py   2022-12-22 
09:55:45.000000000 +0100
+++ new/ipywidgets-8.0.6/ipywidgets/widgets/widget.py   2023-03-28 
17:07:31.000000000 +0200
@@ -10,9 +10,8 @@
 from contextlib import contextmanager
 from collections.abc import Iterable
 from IPython import get_ipython
-from ipykernel.comm import Comm
 from traitlets import (
-    HasTraits, Unicode, Dict, Instance, List, Int, Set, Bytes, observe, 
default, Container,
+    Any, HasTraits, Unicode, Dict, Instance, List, Int, Set, Bytes, observe, 
default, Container,
     Undefined)
 from json import loads as jsonloads, dumps as jsondumps
 
@@ -480,7 +479,7 @@
 
     _view_count = Int(None, allow_none=True,
         help="EXPERIMENTAL: The number of views of the model displayed in the 
frontend. This attribute is experimental and may change or be removed in the 
future. None signifies that views will not be tracked. Set this to 0 to start 
tracking view creation/deletion.").tag(sync=True)
-    comm = Instance('ipykernel.comm.Comm', allow_none=True)
+    comm = Any(allow_none=True)
 
     keys = List(help="The traits which are synced.")
 
@@ -525,7 +524,15 @@
             if self._model_id is not None:
                 args['comm_id'] = self._model_id
 
-            self.comm = Comm(**args)
+            try:
+                from comm import create_comm
+            except ImportError:
+                def create_comm(**kwargs):
+                    from ipykernel.comm import Comm
+
+                    return Comm(**kwargs)
+
+            self.comm = create_comm(**args)
 
     @observe('comm')
     def _comm_changed(self, change):
@@ -686,7 +693,7 @@
         # Send the state to the frontend before the user-registered callbacks
         # are called.
         name = change['name']
-        if self.comm is not None and self.comm.kernel is not None:
+        if self.comm is not None and getattr(self.comm, 'kernel', True) is not 
None:
             # Make sure this isn't information that the front-end just sent us.
             if name in self.keys and self._should_send_property(name, 
getattr(self, name)):
                 # Send new state to front-end
@@ -814,7 +821,7 @@
 
     def _send(self, msg, buffers=None):
         """Sends a message to the model in the front-end."""
-        if self.comm is not None and self.comm.kernel is not None:
+        if self.comm is not None and (self.comm.kernel is not None if 
hasattr(self.comm, "kernel") else True):
             self.comm.send(data=msg, buffers=buffers)
 
     def _repr_keys(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipywidgets-8.0.4/ipywidgets/widgets/widget_output.py 
new/ipywidgets-8.0.6/ipywidgets/widgets/widget_output.py
--- old/ipywidgets-8.0.4/ipywidgets/widgets/widget_output.py    2022-12-22 
09:55:45.000000000 +0100
+++ new/ipywidgets-8.0.6/ipywidgets/widgets/widget_output.py    2023-03-28 
17:07:35.000000000 +0200
@@ -111,9 +111,9 @@
         kernel = None
         if ip and getattr(ip, "kernel", None) is not None:
             kernel = ip.kernel
-        elif self.comm is not None and self.comm.kernel is not None:
+        elif self.comm is not None and getattr(self.comm, 'kernel', None) is 
not None:
             kernel = self.comm.kernel
-        
+
         if kernel:
             parent = None
             if hasattr(kernel, "get_parent"):
@@ -134,7 +134,10 @@
             if ip:
                 kernel = ip
                 ip.showtraceback((etype, evalue, tb), tb_offset=0)
-            elif self.comm is not None and self.comm.kernel is not None:
+            elif (self.comm is not None and
+                    getattr(self.comm, "kernel", None) is not None and
+                    # Check if it's ipykernel
+                    getattr(self.comm.kernel, "send_response", None) is not 
None):
                 kernel = self.comm.kernel
                 kernel.send_response(kernel.iopub_socket,
                                      u'error',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipywidgets-8.0.4/ipywidgets.egg-info/PKG-INFO 
new/ipywidgets-8.0.6/ipywidgets.egg-info/PKG-INFO
--- old/ipywidgets-8.0.4/ipywidgets.egg-info/PKG-INFO   2022-12-22 
10:14:32.000000000 +0100
+++ new/ipywidgets-8.0.6/ipywidgets.egg-info/PKG-INFO   2023-03-28 
17:16:38.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: ipywidgets
-Version: 8.0.4
+Version: 8.0.6
 Summary: Jupyter interactive widgets
 Home-page: http://jupyter.org
 Author: Jupyter Development Team
@@ -31,7 +31,7 @@
 # ipywidgets: Interactive HTML Widgets
 
 **ipywidgets**, also known as jupyter-widgets or simply widgets, are
-[interactive HTML 
widgets](https://github.com/jupyter-widgets/ipywidgets/blob/master/docs/source/examples/Index.ipynb)
+[interactive HTML 
widgets](https://github.com/jupyter-widgets/ipywidgets/blob/main/docs/source/examples/Index.ipynb)
 for Jupyter notebooks and the IPython kernel.
 
 This package contains the python implementation of the core interactive 
widgets bundled in ipywidgets.
@@ -39,7 +39,7 @@
 ## Core Interactive Widgets
 
 The fundamental widgets provided by this library are called core interactive
-widgets. A [demonstration 
notebook](https://github.com/jupyter-widgets/ipywidgets/blob/master/docs/source/examples/Index.ipynb)
+widgets. A [demonstration 
notebook](https://github.com/jupyter-widgets/ipywidgets/blob/main/docs/source/examples/Index.ipynb)
 provides an overview of the core interactive widgets, including:
 
 - sliders
@@ -49,7 +49,4 @@
 - display areas
 - and more
 
-
 For more information, see the main 
[documentation](https://github.com/jupyter-widgets/ipywidgets#readme).
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipywidgets-8.0.4/ipywidgets.egg-info/requires.txt 
new/ipywidgets-8.0.6/ipywidgets.egg-info/requires.txt
--- old/ipywidgets-8.0.4/ipywidgets.egg-info/requires.txt       2022-12-22 
10:14:32.000000000 +0100
+++ new/ipywidgets-8.0.6/ipywidgets.egg-info/requires.txt       2023-03-28 
17:16:38.000000000 +0200
@@ -1,11 +1,12 @@
 ipykernel>=4.5.1
 ipython>=6.1.0
 traitlets>=4.3.1
-widgetsnbextension~=4.0
-jupyterlab_widgets~=3.0
+widgetsnbextension~=4.0.7
+jupyterlab_widgets~=3.0.7
 
 [test]
 jsonschema
+ipykernel
 pytest>=3.6.0
 pytest-cov
 pytz
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipywidgets-8.0.4/setup.cfg 
new/ipywidgets-8.0.6/setup.cfg
--- old/ipywidgets-8.0.4/setup.cfg      2022-12-22 10:14:32.496613500 +0100
+++ new/ipywidgets-8.0.6/setup.cfg      2023-03-28 17:16:38.153421400 +0200
@@ -3,7 +3,7 @@
 version = attr: ipywidgets._version.__version__
 author = Jupyter Development Team
 author_email = jupy...@googlegroups.com
-license_file = LICENSE
+license_files = LICENSE
 description = Jupyter interactive widgets
 long_description = file: README.md
 long_description_content_type = text/markdown
@@ -34,12 +34,13 @@
        ipykernel>=4.5.1
        ipython>=6.1.0
        traitlets>=4.3.1
-       widgetsnbextension~=4.0
-       jupyterlab_widgets~=3.0
+       widgetsnbextension~=4.0.7
+       jupyterlab_widgets~=3.0.7
 
 [options.extras_require]
 test = 
        jsonschema
+       ipykernel
        pytest>=3.6.0
        pytest-cov
        pytz

Reply via email to