From 25acec54f5776b631193c1ee842b488dd223bba9 Mon Sep 17 00:00:00 2001 From: Jason Grout Date: Tue, 6 Sep 2022 13:54:00 -0600 Subject: [PATCH 1/2] Add migration docs about deprecating .widgets and .widget_types --- docs/source/user_migration_guides.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/source/user_migration_guides.md b/docs/source/user_migration_guides.md index cc267cd513..a62fd9e61b 100644 --- a/docs/source/user_migration_guides.md +++ b/docs/source/user_migration_guides.md @@ -78,6 +78,10 @@ The previously deprecated traits `overflow_x` and `overflow_y` [have been removed](https://github.com/jupyter-widgets/ipywidgets/pull/2688). Please use the `overflow` trait instead. +#### `Widget.widgets` and `Widget.widget_types` attributes + +The `Widget` class attributes `.widgets` and `.widget_types` are now deprecated and relocated to internal module-level private variables, opening up these attribute names on the `Widget` class for future uses. + ### Deployments #### Embedded CDN From db41eabfaed80cce14f235a5be49d2789638e55c Mon Sep 17 00:00:00 2001 From: Jason Grout Date: Tue, 6 Sep 2022 16:42:45 -0600 Subject: [PATCH 2/2] Import internal references as relative imports --- python/ipywidgets/ipywidgets/embed.py | 7 +++---- python/ipywidgets/ipywidgets/tests/test_embed.py | 5 ++--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/python/ipywidgets/ipywidgets/embed.py b/python/ipywidgets/ipywidgets/embed.py index 0c17fb63c0..ca58880092 100644 --- a/python/ipywidgets/ipywidgets/embed.py +++ b/python/ipywidgets/ipywidgets/embed.py @@ -12,8 +12,7 @@ import json import re -import ipywidgets.widgets.widget -from .widgets import Widget, DOMWidget +from .widgets import Widget, DOMWidget, widget as widget_module from .widgets.widget_link import Link from .widgets.docutils import doc_subst from ._version import __html_manager_version__ @@ -130,7 +129,7 @@ def _get_recursive_state(widget, store=None, drop_defaults=False): def add_resolved_links(store, drop_defaults): """Adds the state of any link models between two models in store""" - for widget_id, widget in ipywidgets.widgets.widget._instances.items(): # go over all widgets + for widget_id, widget in widget_module._instances.items(): # go over all widgets if isinstance(widget, Link) and widget_id not in store: if widget.source[0].model_id in store and widget.target[0].model_id in store: store[widget.model_id] = widget._get_embed_state(drop_defaults=drop_defaults) @@ -208,7 +207,7 @@ def embed_data(views, drop_defaults=True, state=None): view_specs: a list of widget view specs """ if views is None: - views = [w for w in ipywidgets.widgets.widget._instances.values() if isinstance(w, DOMWidget)] + views = [w for w in widget_module._instances.values() if isinstance(w, DOMWidget)] else: try: views[0] diff --git a/python/ipywidgets/ipywidgets/tests/test_embed.py b/python/ipywidgets/ipywidgets/tests/test_embed.py index 9e8fda2bb5..a295442455 100644 --- a/python/ipywidgets/ipywidgets/tests/test_embed.py +++ b/python/ipywidgets/ipywidgets/tests/test_embed.py @@ -9,8 +9,7 @@ import traitlets -import ipywidgets.widgets.widget -from ..widgets import IntSlider, IntText, Text, Widget, jslink, HBox, widget_serialization +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 @@ -30,7 +29,7 @@ class CaseWidget(Widget): class TestEmbed: def teardown(self): - for w in tuple(ipywidgets.widgets.widget._instances.values()): + for w in tuple(widget_module._instances.values()): w.close() def test_embed_data_simple(self):