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 2024-09-16 17:42:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-ipywidgets (Old)
 and      /work/SRC/openSUSE:Factory/.python-ipywidgets.new.29891 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-ipywidgets"

Mon Sep 16 17:42:39 2024 rev:19 rq:1201256 version:8.1.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-ipywidgets/python-ipywidgets.changes      
2024-07-14 08:54:46.557835315 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-ipywidgets.new.29891/python-ipywidgets.changes
   2024-09-16 17:43:47.490832086 +0200
@@ -1,0 +2,25 @@
+Sun Sep 15 15:49:33 UTC 2024 - Ben Greiner <[email protected]>
+
+- Update to 4.0.13
+  * More Phosphor backward compatibility by @martinRenou in #3942
+  ## New features
+  * Allow interact to use basic type hint annotations by
+    @corranwebster in #3908
+  * Support horizontal orientation of radio buttons by
+    @DonJayamanne in #3620
+  ## Maintenance and bug fixes
+  * Fix compatibility with pytest 8 by @frenzymadness in #3903
+  * HTMLManager: Support both ipywidgets 7 and 8 models by
+    @martinRenou in #3932
+  * Make tests compatible with Python 3.13 by @frenzymadness in
+    #3924
+  * fix: get_metadata deprecated since traitlets 4.1 by
+    @ManonMarchand in #3894
+  * Phosphor widget backward compatibility fixes by @martinRenou in
+    #3933
+  * Remove confusing error message by @martinRenou in #3936
+  * Fix wrong tag index in TagsInput when updated via python by
+    @s-weigand in #3862
+- Drop ipywidgets-pr3903-pytest.patch
+
+-------------------------------------------------------------------

Old:
----
  ipywidgets-8.1.3.tar.gz
  ipywidgets-pr3903-pytest.patch

New:
----
  ipywidgets-8.1.5.tar.gz

BETA DEBUG BEGIN:
  Old:    @s-weigand in #3862
- Drop ipywidgets-pr3903-pytest.patch
BETA DEBUG END:

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

Other differences:
------------------
++++++ python-ipywidgets.spec ++++++
--- /var/tmp/diff_new_pack.wv8URt/_old  2024-09-16 17:43:48.654880204 +0200
+++ /var/tmp/diff_new_pack.wv8URt/_new  2024-09-16 17:43:48.654880204 +0200
@@ -17,15 +17,13 @@
 
 
 Name:           python-ipywidgets
-Version:        8.1.3
+Version:        8.1.5
 Release:        0
 Summary:        IPython HTML widgets for Jupyter
 License:        BSD-3-Clause
 Group:          Development/Languages/Python
 URL:            https://github.com/jupyter-widgets/ipywidgets
 Source0:        
https://files.pythonhosted.org/packages/source/i/ipywidgets/ipywidgets-%{version}.tar.gz
-# PATCH-FIX-UPSTREAM ipywidgets-pr3903-pytest.patch 
gh#jupyter-widgets/ipywidgets#3903
-Patch0:         ipywidgets-pr3903-pytest.patch
 BuildRequires:  %{python_module base >= 3.7}
 BuildRequires:  %{python_module pip}
 BuildRequires:  %{python_module setuptools}
@@ -36,8 +34,8 @@
 Requires:       python-comm >= 0.1.3
 Requires:       python-ipython >= 6.1.0
 Requires:       python-traitlets >= 4.3.1
-Requires:       (python-jupyterlab_widgets >= 3.0.11 with 
python-jupyterlab_widgets < 4)
-Requires:       (python-widgetsnbextension >= 4.0.11 with 
python-widgetsnbextension < 5)
+Requires:       (python-jupyterlab_widgets >= 3.0.12 with 
python-jupyterlab_widgets < 4)
+Requires:       (python-widgetsnbextension >= 4.0.12 with 
python-widgetsnbextension < 5)
 Provides:       python-jupyter_ipywidgets = %{version}
 Obsoletes:      python-jupyter_ipywidgets < %{version}
 BuildArch:      noarch
@@ -46,11 +44,11 @@
 BuildRequires:  %{python_module ipykernel}
 BuildRequires:  %{python_module ipython >= 6.1.0}
 BuildRequires:  %{python_module jsonschema}
-BuildRequires:  %{python_module jupyterlab_widgets >= 3.0.11 with 
%python-jupyterlab_widgets < 4}
+BuildRequires:  %{python_module jupyterlab_widgets >= 3.0.12 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.11 with 
%python-widgetsnbextension < 5}
+BuildRequires:  %{python_module widgetsnbextension >= 4.0.12 with 
%python-widgetsnbextension < 5}
 # /SECTION
 %if "%{python_flavor}" == "python3" || "%{?python_provides}"  == "python3"
 Provides:       jupyter-ipywidgets = %{version}

++++++ ipywidgets-8.1.3.tar.gz -> ipywidgets-8.1.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipywidgets-8.1.3/PKG-INFO 
new/ipywidgets-8.1.5/PKG-INFO
--- old/ipywidgets-8.1.3/PKG-INFO       2024-05-28 11:32:06.282020000 +0200
+++ new/ipywidgets-8.1.5/PKG-INFO       2024-08-22 14:19:20.537261000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: ipywidgets
-Version: 8.1.3
+Version: 8.1.5
 Summary: Jupyter interactive widgets
 Home-page: http://jupyter.org
 Author: Jupyter Development Team
@@ -29,8 +29,8 @@
 Requires-Dist: comm>=0.1.3
 Requires-Dist: ipython>=6.1.0
 Requires-Dist: traitlets>=4.3.1
-Requires-Dist: widgetsnbextension~=4.0.11
-Requires-Dist: jupyterlab_widgets~=3.0.11
+Requires-Dist: widgetsnbextension~=4.0.12
+Requires-Dist: jupyterlab_widgets~=3.0.12
 Provides-Extra: test
 Requires-Dist: jsonschema; extra == "test"
 Requires-Dist: ipykernel; extra == "test"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipywidgets-8.1.3/ipywidgets/_version.py 
new/ipywidgets-8.1.5/ipywidgets/_version.py
--- old/ipywidgets-8.1.3/ipywidgets/_version.py 2024-05-28 11:31:27.000000000 
+0200
+++ new/ipywidgets-8.1.5/ipywidgets/_version.py 2024-08-22 14:18:56.000000000 
+0200
@@ -1,7 +1,7 @@
 # Copyright (c) Jupyter Development Team.
 # Distributed under the terms of the Modified BSD License.
 
-__version__ = '8.1.3'
+__version__ = '8.1.5'
 
 __protocol_version__ = '2.1.0'
 __control_protocol_version__ = '1.0.0'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipywidgets-8.1.3/ipywidgets/widgets/interaction.py 
new/ipywidgets-8.1.5/ipywidgets/widgets/interaction.py
--- old/ipywidgets-8.1.3/ipywidgets/widgets/interaction.py      2024-05-23 
12:50:20.000000000 +0200
+++ new/ipywidgets-8.1.5/ipywidgets/widgets/interaction.py      2024-08-22 
10:53:14.000000000 +0200
@@ -4,6 +4,7 @@
 """Interact with functions using widgets."""
 
 from collections.abc import Iterable, Mapping
+from enum import EnumMeta as EnumType
 from inspect import signature, Parameter
 from inspect import getcallargs
 from inspect import getfullargspec as check_argspec
@@ -11,8 +12,8 @@
 
 from IPython import get_ipython
 from . import (Widget, ValueWidget, Text,
-    FloatSlider, IntSlider, Checkbox, Dropdown,
-    VBox, Button, DOMWidget, Output)
+    FloatSlider, FloatText, IntSlider, IntText, Checkbox,
+    Dropdown, VBox, Button, DOMWidget, Output)
 from IPython.display import display, clear_output
 from traitlets import HasTraits, Any, Unicode, observe
 from numbers import Real, Integral
@@ -125,6 +126,8 @@
             value = kwargs.pop(name)
         elif default is not empty:
             value = default
+        elif param.annotation:
+            value = param.annotation
         else:
             yield not_found
         yield (name, value, default)
@@ -304,6 +307,12 @@
                     # ignore failure to set default
                     pass
             return widget
+        
+        # Try type annotation
+        if isinstance(abbrev, type):
+            widget = cls.widget_from_annotation(abbrev)
+            if widget is not None:
+                return widget
 
         # Try single value
         widget = cls.widget_from_single_value(abbrev)
@@ -341,6 +350,22 @@
         else:
             return None
 
+    @staticmethod
+    def widget_from_annotation(t):
+        """Make widgets from type annotation and optional default value."""
+        if t is str:
+            return Text()
+        elif t is bool:
+            return Checkbox()
+        elif t in {int, Integral}:
+            return IntText()
+        elif t in {float, Real}:
+            return FloatText()
+        elif isinstance(t, EnumType):
+            return Dropdown(options={option.name: option for option in t})
+        else:
+            return None
+
     @staticmethod
     def widget_from_tuple(o):
         """Make widgets from a tuple abbreviation."""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ipywidgets-8.1.3/ipywidgets/widgets/tests/test_docutils.py 
new/ipywidgets-8.1.5/ipywidgets/widgets/tests/test_docutils.py
--- old/ipywidgets-8.1.3/ipywidgets/widgets/tests/test_docutils.py      
2024-01-31 14:17:14.000000000 +0100
+++ new/ipywidgets-8.1.5/ipywidgets/widgets/tests/test_docutils.py      
2024-08-22 10:53:14.000000000 +0200
@@ -15,7 +15,7 @@
         def f():
             """ Docstring with value {key} """
 
-        assert f.__doc__ == " Docstring with value 62 "
+        assert "Docstring with value 62" in f.__doc__
 
     def test_unused_keys(self):
         snippets = {'key': '62', 'other-key': 'unused'}
@@ -24,4 +24,4 @@
         def f():
             """ Docstring with value {key} """
 
-        assert f.__doc__ == " Docstring with value 62 "
+        assert "Docstring with value 62" in f.__doc__
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ipywidgets-8.1.3/ipywidgets/widgets/tests/test_interaction.py 
new/ipywidgets-8.1.5/ipywidgets/widgets/tests/test_interaction.py
--- old/ipywidgets-8.1.3/ipywidgets/widgets/tests/test_interaction.py   
2024-05-23 12:50:20.000000000 +0200
+++ new/ipywidgets-8.1.5/ipywidgets/widgets/tests/test_interaction.py   
2024-08-22 10:53:14.000000000 +0200
@@ -6,6 +6,7 @@
 from unittest.mock import patch
 
 import os
+from enum import Enum
 from collections import OrderedDict
 import pytest
 
@@ -19,11 +20,20 @@
 # Utility stuff
 #-----------------------------------------------------------------------------
 
-from .utils import setup, teardown
-
 def f(**kwargs):
     pass
 
+
+class Color(Enum):
+    red = 0
+    green = 1
+    blue = 2
+
+
+def g(a: str, b: bool, c: int, d: float, e: Color) -> None:
+    pass
+
+
 displayed = []
 @pytest.fixture()
 def clear_display():
@@ -624,3 +634,27 @@
     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)
+
+def test_type_hints():
+    c = interactive(g)
+    
+    assert len(c.children) == 6
+
+    check_widget_children(
+        c,
+        a={'cls': widgets.Text},
+        b={'cls': widgets.Checkbox},
+        c={'cls': widgets.IntText},
+        d={'cls': widgets.FloatText},
+        e={
+            'cls': widgets.Dropdown,
+            'options': {
+                'red': Color.red,
+                'green': Color.green,
+                'blue': Color.blue,
+            },
+            '_options_labels': ("red", "green", "blue"),
+            '_options_values': (Color.red, Color.green, Color.blue),
+        },
+    )
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ipywidgets-8.1.3/ipywidgets/widgets/tests/test_link.py 
new/ipywidgets-8.1.5/ipywidgets/widgets/tests/test_link.py
--- old/ipywidgets-8.1.3/ipywidgets/widgets/tests/test_link.py  2024-01-31 
14:17:14.000000000 +0100
+++ new/ipywidgets-8.1.5/ipywidgets/widgets/tests/test_link.py  2024-08-22 
10:53:13.000000000 +0200
@@ -4,7 +4,6 @@
 import pytest
 
 from .. import jslink, jsdlink, ToggleButton
-from .utils import setup, teardown
 
 def test_jslink_args():
     with pytest.raises(TypeError):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ipywidgets-8.1.3/ipywidgets/widgets/tests/test_send_state.py 
new/ipywidgets-8.1.5/ipywidgets/widgets/tests/test_send_state.py
--- old/ipywidgets-8.1.3/ipywidgets/widgets/tests/test_send_state.py    
2024-05-23 12:50:20.000000000 +0200
+++ new/ipywidgets-8.1.5/ipywidgets/widgets/tests/test_send_state.py    
2024-08-22 10:53:13.000000000 +0200
@@ -3,7 +3,7 @@
 
 from traitlets import Bool, Tuple, List
 
-from .utils import setup, teardown, DummyComm
+from .utils import setup
 
 from ..widget import Widget
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ipywidgets-8.1.3/ipywidgets/widgets/tests/test_set_state.py 
new/ipywidgets-8.1.5/ipywidgets/widgets/tests/test_set_state.py
--- old/ipywidgets-8.1.3/ipywidgets/widgets/tests/test_set_state.py     
2024-05-23 12:50:20.000000000 +0200
+++ new/ipywidgets-8.1.5/ipywidgets/widgets/tests/test_set_state.py     
2024-08-22 10:53:13.000000000 +0200
@@ -6,7 +6,7 @@
 
 from traitlets import Bool, Tuple, List, Instance, CFloat, CInt, Float, Int, 
TraitError, observe
 
-from .utils import setup, teardown
+from .utils import setup
 
 import ipywidgets
 from ipywidgets import Widget
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipywidgets-8.1.3/ipywidgets/widgets/tests/utils.py 
new/ipywidgets-8.1.5/ipywidgets/widgets/tests/utils.py
--- old/ipywidgets-8.1.3/ipywidgets/widgets/tests/utils.py      2024-05-23 
12:50:20.000000000 +0200
+++ new/ipywidgets-8.1.5/ipywidgets/widgets/tests/utils.py      2024-08-22 
10:53:13.000000000 +0200
@@ -12,7 +12,7 @@
     NEW_COMM_PACKAGE = False
 
 import ipykernel.comm
-
+import pytest
 
 class DummyComm():
     comm_id = 'a-b-c-d'
@@ -87,10 +87,10 @@
             setattr(Widget, attr, value)
     _widget_attrs.clear()
 
[email protected](autouse=True)
 def setup():
     setup_test_comm()
-
-def teardown():
+    yield
     teardown_test_comm()
 
 def call_method(method, *args, **kwargs):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipywidgets-8.1.3/ipywidgets/widgets/widget.py 
new/ipywidgets-8.1.5/ipywidgets/widgets/widget.py
--- old/ipywidgets-8.1.3/ipywidgets/widgets/widget.py   2024-05-23 
12:50:20.000000000 +0200
+++ new/ipywidgets-8.1.5/ipywidgets/widgets/widget.py   2024-08-22 
10:53:14.000000000 +0200
@@ -684,7 +684,7 @@
         """Dynamically add trait attributes to the Widget."""
         super().add_traits(**traits)
         for name, trait in traits.items():
-            if trait.get_metadata('sync'):
+            if 'sync' in trait.metadata:
                 self.keys.append(name)
                 self.send_state(name)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ipywidgets-8.1.3/ipywidgets/widgets/widget_selection.py 
new/ipywidgets-8.1.5/ipywidgets/widgets/widget_selection.py
--- old/ipywidgets-8.1.3/ipywidgets/widgets/widget_selection.py 2024-05-23 
12:50:20.000000000 +0200
+++ new/ipywidgets-8.1.5/ipywidgets/widgets/widget_selection.py 2024-08-22 
11:28:40.000000000 +0200
@@ -478,6 +478,10 @@
     _view_name = Unicode('RadioButtonsView').tag(sync=True)
     _model_name = Unicode('RadioButtonsModel').tag(sync=True)
 
+    orientation = CaselessStrEnum(
+        values=['horizontal', 'vertical'], default_value='vertical',
+        help="Vertical or horizontal.").tag(sync=True)
+
 
 @register
 @doc_subst(_doc_snippets)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipywidgets-8.1.3/ipywidgets.egg-info/PKG-INFO 
new/ipywidgets-8.1.5/ipywidgets.egg-info/PKG-INFO
--- old/ipywidgets-8.1.3/ipywidgets.egg-info/PKG-INFO   2024-05-28 
11:32:06.000000000 +0200
+++ new/ipywidgets-8.1.5/ipywidgets.egg-info/PKG-INFO   2024-08-22 
14:19:20.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: ipywidgets
-Version: 8.1.3
+Version: 8.1.5
 Summary: Jupyter interactive widgets
 Home-page: http://jupyter.org
 Author: Jupyter Development Team
@@ -29,8 +29,8 @@
 Requires-Dist: comm>=0.1.3
 Requires-Dist: ipython>=6.1.0
 Requires-Dist: traitlets>=4.3.1
-Requires-Dist: widgetsnbextension~=4.0.11
-Requires-Dist: jupyterlab_widgets~=3.0.11
+Requires-Dist: widgetsnbextension~=4.0.12
+Requires-Dist: jupyterlab_widgets~=3.0.12
 Provides-Extra: test
 Requires-Dist: jsonschema; extra == "test"
 Requires-Dist: ipykernel; extra == "test"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipywidgets-8.1.3/ipywidgets.egg-info/requires.txt 
new/ipywidgets-8.1.5/ipywidgets.egg-info/requires.txt
--- old/ipywidgets-8.1.3/ipywidgets.egg-info/requires.txt       2024-05-28 
11:32:06.000000000 +0200
+++ new/ipywidgets-8.1.5/ipywidgets.egg-info/requires.txt       2024-08-22 
14:19:20.000000000 +0200
@@ -1,8 +1,8 @@
 comm>=0.1.3
 ipython>=6.1.0
 traitlets>=4.3.1
-widgetsnbextension~=4.0.11
-jupyterlab_widgets~=3.0.11
+widgetsnbextension~=4.0.12
+jupyterlab_widgets~=3.0.12
 
 [test]
 jsonschema
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipywidgets-8.1.3/setup.cfg 
new/ipywidgets-8.1.5/setup.cfg
--- old/ipywidgets-8.1.3/setup.cfg      2024-05-28 11:32:06.282020000 +0200
+++ new/ipywidgets-8.1.5/setup.cfg      2024-08-22 14:19:20.538261000 +0200
@@ -34,8 +34,8 @@
        comm>=0.1.3
        ipython>=6.1.0
        traitlets>=4.3.1
-       widgetsnbextension~=4.0.11
-       jupyterlab_widgets~=3.0.11
+       widgetsnbextension~=4.0.12
+       jupyterlab_widgets~=3.0.12
 
 [options.extras_require]
 test = 

Reply via email to