Skip to content

Commit 18b0921

Browse files
committed
make repr/display conditional on ipywidgets version
1 parent c6f3b01 commit 18b0921

File tree

1 file changed

+32
-24
lines changed

1 file changed

+32
-24
lines changed

pythreejs/_base/Three.py

Lines changed: 32 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
from ipywidgets import Widget, widget_serialization
22
from traitlets import Unicode
33

4+
try:
5+
from importlib.metadata import version
6+
except ImportError:
7+
def version(pkg):
8+
import pkg_resources
9+
return pkg_resources.get_distribution(pkg).version
10+
411
from .._package import npm_pkg_name
512
from .._version import EXTENSION_SPEC_VERSION
613

@@ -39,28 +46,29 @@ def _on_ret_val(self, method_name, ret_val):
3946
"""Message callback used internally for logging exec returns"""
4047
self.log.info('%s() -> %s' % (method_name, ret_val))
4148

42-
def _repr_mimebundle_(self, **kwargs):
43-
if self._previewable:
44-
from .renderable import Preview
45-
plaintext = repr(self)
46-
if len(plaintext) > 110:
47-
plaintext = plaintext[:110] + '…'
48-
preview = Preview(self)
49-
return {
50-
'text/plain': plaintext,
51-
'application/vnd.jupyter.widget-view+json': {
52-
"version_major": 2,
53-
"version_minor": 0,
54-
"model_id": preview._model_id
49+
if version("ipywidget") >= (8, 0, 0):
50+
def _repr_mimebundle_(self, **kwargs):
51+
if self._previewable:
52+
from .renderable import Preview
53+
plaintext = repr(self)
54+
if len(plaintext) > 110:
55+
plaintext = plaintext[:110] + '…'
56+
preview = Preview(self)
57+
return {
58+
'text/plain': plaintext,
59+
'application/vnd.jupyter.widget-view+json': {
60+
"version_major": 2,
61+
"version_minor": 0,
62+
"model_id": preview._model_id
63+
}
5564
}
56-
}
57-
else:
58-
return super(ThreeWidget, self)._repr_mimebundle_(**kwargs)
59-
60-
def _ipython_display_(self, **kwargs):
61-
if self._previewable:
62-
from IPython.display import display
63-
from .renderable import Preview
64-
return display(Preview(self), **kwargs)
65-
else:
66-
return super(ThreeWidget, self)._ipython_display_(**kwargs)
65+
else:
66+
return super(ThreeWidget, self)._repr_mimebundle_(**kwargs)
67+
else:
68+
def _ipython_display_(self, **kwargs):
69+
if self._previewable:
70+
from IPython.display import display
71+
from .renderable import Preview
72+
return display(Preview(self), **kwargs)
73+
else:
74+
return super(ThreeWidget, self)._ipython_display_(**kwargs)

0 commit comments

Comments
 (0)