diff --git a/.ipynb_checkpoints/TestNotebook-checkpoint.ipynb b/.ipynb_checkpoints/TestNotebook-checkpoint.ipynb new file mode 100644 index 000000000..019027426 --- /dev/null +++ b/.ipynb_checkpoints/TestNotebook-checkpoint.ipynb @@ -0,0 +1,40 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import vcs\n", + "import cdms2\n", + "vcs.download_sample_data_files()\n", + "f=cdms2.open(vcs.sample_data+\"/clt.nc\")\n", + "s=f(\"clt\")\n", + "x=vcs.init(bg=True)\n", + "x.plot(s)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/TestNotebook.ipynb b/TestNotebook.ipynb new file mode 100644 index 000000000..019027426 --- /dev/null +++ b/TestNotebook.ipynb @@ -0,0 +1,40 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import vcs\n", + "import cdms2\n", + "vcs.download_sample_data_files()\n", + "f=cdms2.open(vcs.sample_data+\"/clt.nc\")\n", + "s=f(\"clt\")\n", + "x=vcs.init(bg=True)\n", + "x.plot(s)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/vcs/displayplot.py b/vcs/displayplot.py index 3093482a5..d2fdfaabf 100755 --- a/vcs/displayplot.py +++ b/vcs/displayplot.py @@ -74,6 +74,14 @@ def get_update_array_kw(disp, array, widgets, debug_target=None): return kw +class IPythonDisplay(object): + def __init__(self, png): + self.png = png + + def _repr_png_(self): + return self.png + + class Dp(vcs.bestMatch): """ @@ -306,10 +314,16 @@ def generate_sliders(self, debug): return widgets def _repr_png_(self): + SLIDERS_ENABLED = False st = None debug = False if not HAVE_IPYWIDGETS: debug = False + tmp = tempfile.mktemp() + ".png" + self._parent.png(tmp) + f = open(tmp, "rb") + st = f.read() + f.close() if HAVE_IPY: sidecar_on = True if HAVE_SIDECAR: @@ -329,9 +343,13 @@ def _repr_png_(self): layout={'border': '1px solid black'}) else: self._parent._display_target_out = None - widgets = self.generate_sliders(debug) - vbox = ipywidgets.VBox( - widgets + [self._parent._display_target_image]) + if SLIDERS_ENABLED: + widgets = self.generate_sliders(debug) + self._parent._display_target_image.value = st + vbox = ipywidgets.VBox( + widgets + [self._parent._display_target_image]) + else: + vbox = IPythonDisplay(st) if HAVE_SIDECAR and sidecar_on: with self._parent._display_target: IPython.display.clear_output() @@ -341,18 +359,7 @@ def _repr_png_(self): IPython.display.display(vbox) else: IPython.display.clear_output() - tmp = tempfile.mktemp() + ".png" - self._parent.png(tmp) - f = open(tmp, "rb") - st = f.read() - f.close() - self._parent._display_target_image.value = st return None - tmp = tempfile.mktemp() + ".png" - self._parent.png(tmp) - f = open(tmp, "rb") - st = f.read() - f.close() return st # TODO: html,json,jpeg,png,svg,latex