Skip to content

Commit 5de5abe

Browse files
authored
Merge pull request #3122 from ianhi/global-list
Privatize Widgets.widget
2 parents 95500a0 + 8fdf020 commit 5de5abe

File tree

4 files changed

+15
-15
lines changed

4 files changed

+15
-15
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: 11 additions & 11 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

@@ -247,7 +247,7 @@ def items(self):
247247
def register(widget):
248248
"""A decorator registering a widget class in the widget registry."""
249249
w = widget.class_traits()
250-
Widget.widget_types.register(w['_model_module'].default_value,
250+
Widget._widget_types.register(w['_model_module'].default_value,
251251
w['_model_module_version'].default_value,
252252
w['_model_name'].default_value,
253253
w['_view_module'].default_value,
@@ -263,11 +263,11 @@ 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

269-
# widget_types is a registry of widgets by module, version, and name:
270-
widget_types = WidgetRegistry()
269+
# _widget_types is a registry of widgets by module, version, and name:
270+
_widget_types = WidgetRegistry()
271271

272272
@classmethod
273273
def close_all(cls):
@@ -299,7 +299,7 @@ def handle_comm_opened(comm, msg):
299299
state = data['state']
300300

301301
# Find the widget class to instantiate in the registered widgets
302-
widget_class = Widget.widget_types.get(state['_model_module'],
302+
widget_class = Widget._widget_types.get(state['_model_module'],
303303
state['_model_module_version'],
304304
state['_model_name'],
305305
state['_view_module'],
@@ -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

packages/schema/generate-spec.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ def create_markdown(spec):
199199
args = parser.parse_args()
200200
format = args.format
201201

202-
widgets_to_document = sorted(widgets.Widget.widget_types.items())
202+
widgets_to_document = sorted(widgets.Widget._widget_types.items())
203203
spec = create_spec(widgets_to_document)
204204
if format == 'json':
205205
print(json.dumps(spec, sort_keys=True))

0 commit comments

Comments
 (0)