From f9fa4ada0601971173ed725d2966fcb101ecc8cb Mon Sep 17 00:00:00 2001 From: Sylvain Corlay Date: Fri, 1 Aug 2014 23:16:02 -0400 Subject: [PATCH] allowing widet id to be set externally --- IPython/html/widgets/widget.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/IPython/html/widgets/widget.py b/IPython/html/widgets/widget.py index f9ee5fc29..f7aae5d03 100644 --- a/IPython/html/widgets/widget.py +++ b/IPython/html/widgets/widget.py @@ -119,6 +119,7 @@ class Widget(LoggingConfigurable): #------------------------------------------------------------------------- def __init__(self, **kwargs): """Public constructor""" + self._model_id = kwargs.pop('model_id', None) super(Widget, self).__init__(**kwargs) self.on_trait_change(self._handle_property_changed, self.keys) @@ -136,8 +137,11 @@ class Widget(LoggingConfigurable): def open(self): """Open a comm to the frontend if one isn't already open.""" if self.comm is None: - # Create a comm. - self.comm = Comm(target_name=self._model_name) + if self._model_id is None: + self.comm = Comm(target_name=self._model_name) + self._model_id = self.model_id + else: + self.comm = Comm(target_name=self._model_name, comm_id=self._model_id) self.comm.on_msg(self._handle_msg) Widget.widgets[self.model_id] = self