From 859264027179c830a3f19caa07826eb9503365a2 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Mon, 4 Feb 2019 07:26:55 -0500 Subject: [PATCH 1/2] Don't autoimport FigureWidget unless ipywidgets is installed and >= 7.0.0 --- codegen/__init__.py | 5 +++-- plotly/basewidget.py | 1 + plotly/graph_objs/__init__.py | 5 +++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/codegen/__init__.py b/codegen/__init__.py index 1bb2902d260..71411dc8650 100644 --- a/codegen/__init__.py +++ b/codegen/__init__.py @@ -235,10 +235,11 @@ def perform_codegen(): optional_figure_widget_import = """ try: import ipywidgets - from ._figurewidget import FigureWidget + from distutils.version import LooseVersion + if LooseVersion(ipywidgets.__version__) >= LooseVersion('7.0.0'): + from ._figurewidget import FigureWidget except ImportError: pass - """ root_datatype_imports.append(optional_figure_widget_import) diff --git a/plotly/basewidget.py b/plotly/basewidget.py index 6b119b308ca..a99bd7636c9 100644 --- a/plotly/basewidget.py +++ b/plotly/basewidget.py @@ -15,6 +15,7 @@ from .serializers import custom_serializers from .version import __frontend_version__ + @widgets.register class BaseFigureWidget(BaseFigure, widgets.DOMWidget): """ diff --git a/plotly/graph_objs/__init__.py b/plotly/graph_objs/__init__.py index 4321a5961ba..b7a7c79df9c 100644 --- a/plotly/graph_objs/__init__.py +++ b/plotly/graph_objs/__init__.py @@ -79,10 +79,11 @@ try: import ipywidgets - from ._figurewidget import FigureWidget + from distutils.version import LooseVersion + if LooseVersion(ipywidgets.__version__) >= LooseVersion('7.0.0'): + from ._figurewidget import FigureWidget except ImportError: pass - from ._deprecations import ( Data, Annotations, Frames, AngularAxis, Annotation, ColorBar, Contours, ErrorX, ErrorY, ErrorZ, Font, Legend, Line, Margin, Marker, RadialAxis, From 5bc5c6a49a971ff424b255182ed9e668d58b948a Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Mon, 4 Feb 2019 07:49:00 -0500 Subject: [PATCH 2/2] Remove LooseVersion and ipywidgets from graph_objs namespace --- codegen/__init__.py | 2 ++ plotly/graph_objs/__init__.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/codegen/__init__.py b/codegen/__init__.py index 71411dc8650..98f1489ec79 100644 --- a/codegen/__init__.py +++ b/codegen/__init__.py @@ -238,6 +238,8 @@ def perform_codegen(): from distutils.version import LooseVersion if LooseVersion(ipywidgets.__version__) >= LooseVersion('7.0.0'): from ._figurewidget import FigureWidget + del LooseVersion + del ipywidgets except ImportError: pass """ diff --git a/plotly/graph_objs/__init__.py b/plotly/graph_objs/__init__.py index b7a7c79df9c..0f56dfcf515 100644 --- a/plotly/graph_objs/__init__.py +++ b/plotly/graph_objs/__init__.py @@ -82,6 +82,8 @@ from distutils.version import LooseVersion if LooseVersion(ipywidgets.__version__) >= LooseVersion('7.0.0'): from ._figurewidget import FigureWidget + del LooseVersion + del ipywidgets except ImportError: pass from ._deprecations import (