Skip to content

Commit c6794d5

Browse files
committed
Merge pull request #319 from jdfreder/fixvalidation
Fix bug in comm based server side validation,
2 parents f368f96 + 9fb733b commit c6794d5

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

ipywidgets/widgets/widget.py

+10-8
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
from contextlib import contextmanager
1010
import collections
11+
import sys
1112

1213
from IPython.core.getipython import get_ipython
1314
from ipykernel.comm import Comm
@@ -461,16 +462,20 @@ def _trait_from_json(x, self):
461462

462463
def _ipython_display_(self, **kwargs):
463464
"""Called when `IPython.display.display` is called on the widget."""
465+
def loud_error(message):
466+
self.log.warn(message)
467+
sys.stderr.write('%s\n' % message)
468+
464469
# Show view.
465470
if self._view_name is not None:
466-
validated = validate_version()
471+
validated = Widget._version_validated
467472

468473
# Before the user tries to display a widget. Validate that the
469474
# widget front-end is what is expected.
470475
if validated is None:
471-
self.log.warn('Widget Javascript not detected. It may not be installed properly.')
476+
loud_error('Widget Javascript not detected. It may not be installed properly.')
472477
elif not validated:
473-
self.log.warn('The installed widget Javascript is the wrong version.')
478+
loud_error('The installed widget Javascript is the wrong version.')
474479

475480
self._send({"method": "display"})
476481
self._handle_displayed(**kwargs)
@@ -480,14 +485,11 @@ def _send(self, msg, buffers=None):
480485
self.comm.send(data=msg, buffers=buffers)
481486

482487

483-
_version_validated = None
488+
Widget._version_validated = None
484489
def handle_version_comm_opened(comm, msg):
485490
"""Called when version comm is opened, because the front-end wants to
486491
validate the version."""
487492
def handle_version_message(msg):
488-
_version_validated = msg['content']['data']['validated']
493+
Widget._version_validated = msg['content']['data']['validated']
489494
comm.on_msg(handle_version_message)
490495
comm.send({'version': '4.1.0dev'})
491-
492-
def validate_version():
493-
return _version_validated

0 commit comments

Comments
 (0)