Skip to content

Commit 0558166

Browse files
committed
privatize the dict of all active widgets
1 parent f6c160d commit 0558166

File tree

3 files changed

+10
-10
lines changed

3 files changed

+10
-10
lines changed

ipywidgets/embed.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ def _get_recursive_state(widget, store=None, drop_defaults=False):
129129

130130
def add_resolved_links(store, drop_defaults):
131131
"""Adds the state of any link models between two models in store"""
132-
for widget_id, widget in Widget.widgets.items(): # go over all widgets
132+
for widget_id, widget in Widget._active_widgets.items(): # go over all widgets
133133
if isinstance(widget, Link) and widget_id not in store:
134134
if widget.source[0].model_id in store and widget.target[0].model_id in store:
135135
store[widget.model_id] = widget._get_embed_state(drop_defaults=drop_defaults)
@@ -207,7 +207,7 @@ def embed_data(views, drop_defaults=True, state=None):
207207
view_specs: a list of widget view specs
208208
"""
209209
if views is None:
210-
views = [w for w in Widget.widgets.values() if isinstance(w, DOMWidget)]
210+
views = [w for w in Widget._active_widgets.values() if isinstance(w, DOMWidget)]
211211
else:
212212
try:
213213
views[0]

ipywidgets/tests/test_embed.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class CaseWidget(Widget):
2929
class TestEmbed:
3030

3131
def teardown(self):
32-
for w in tuple(Widget.widgets.values()):
32+
for w in tuple(Widget._active_widgets.values()):
3333
w.close()
3434

3535
def test_embed_data_simple(self):

ipywidgets/widgets/widget.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ def _json_to_widget(x, obj):
3535
return {k: _json_to_widget(v, obj) for k, v in x.items()}
3636
elif isinstance(x, (list, tuple)):
3737
return [_json_to_widget(v, obj) for v in x]
38-
elif isinstance(x, str) and x.startswith('IPY_MODEL_') and x[10:] in Widget.widgets:
39-
return Widget.widgets[x[10:]]
38+
elif isinstance(x, str) and x.startswith('IPY_MODEL_') and x[10:] in Widget._active_widgets:
39+
return Widget._active_widgets[x[10:]]
4040
else:
4141
return x
4242

@@ -263,8 +263,8 @@ class Widget(LoggingHasTraits):
263263
#-------------------------------------------------------------------------
264264
_widget_construction_callback = None
265265

266-
# widgets is a dictionary of all active widget objects
267-
widgets = {}
266+
# _active_widgets is a dictionary of all active widget objects
267+
_active_widgets = {}
268268

269269
# widget_types is a registry of widgets by module, version, and name:
270270
widget_types = WidgetRegistry()
@@ -320,7 +320,7 @@ def get_manager_state(drop_defaults=False, widgets=None):
320320
"""
321321
state = {}
322322
if widgets is None:
323-
widgets = Widget.widgets.values()
323+
widgets = Widget._active_widgets.values()
324324
for widget in widgets:
325325
state[widget.model_id] = widget._get_embed_state(drop_defaults=drop_defaults)
326326
return {'version_major': 2, 'version_minor': 0, 'state': state}
@@ -416,7 +416,7 @@ def _comm_changed(self, change):
416416
self._model_id = self.model_id
417417

418418
self.comm.on_msg(self._handle_msg)
419-
Widget.widgets[self.model_id] = self
419+
Widget._active_widgets[self.model_id] = self
420420

421421
@property
422422
def model_id(self):
@@ -436,7 +436,7 @@ def close(self):
436436
When the comm is closed, all of the widget views are automatically
437437
removed from the front-end."""
438438
if self.comm is not None:
439-
Widget.widgets.pop(self.model_id, None)
439+
Widget._active_widgets.pop(self.model_id, None)
440440
self.comm.close()
441441
self.comm = None
442442
self._repr_mimebundle_ = None

0 commit comments

Comments
 (0)