Skip to content

Commit 86514e1

Browse files
committed
feat: restore type checking portion of code generation
- Restore code removed in #4978. - (Partially) closes #5186. - Remove unneeded imports of `sys`.
1 parent c044f1e commit 86514e1

File tree

4 files changed

+38
-24
lines changed

4 files changed

+38
-24
lines changed

codegen/__init__.py

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -271,24 +271,36 @@ def perform_codegen(reformat=True):
271271
root_datatype_imports.append(f"._deprecations.{dep_clas}")
272272

273273
optional_figure_widget_import = f"""
274-
__all__.append("FigureWidget")
275-
orig_getattr = __getattr__
276-
def __getattr__(import_name):
277-
if import_name == "FigureWidget":
278-
try:
279-
import ipywidgets
280-
from packaging.version import Version
281-
282-
if Version(ipywidgets.__version__) >= Version("7.0.0"):
283-
from ..graph_objs._figurewidget import FigureWidget
274+
if sys.version_info < (3, 7) or TYPE_CHECKING:
275+
try:
276+
import ipywidgets as _ipywidgets
277+
from packaging.version import Version as _Version
278+
if _Version(_ipywidgets.__version__) >= _Version("7.0.0"):
279+
from ..graph_objs._figurewidget import FigureWidget
280+
else:
281+
raise ImportError()
282+
except Exception:
283+
from ..missing_anywidget import FigureWidget
284+
else:
285+
__all__.append("FigureWidget")
286+
orig_getattr = __getattr__
287+
def __getattr__(import_name):
288+
if import_name == "FigureWidget":
289+
try:
290+
import ipywidgets
291+
from packaging.version import Version
292+
if Version(ipywidgets.__version__) >= Version("7.0.0"):
293+
from ..graph_objs._figurewidget import FigureWidget
294+
return FigureWidget
295+
else:
296+
raise ImportError()
297+
except Exception:
298+
from ..missing_anywidget import FigureWidget
284299
return FigureWidget
285300
else:
286301
raise ImportError()
287-
except Exception:
288-
from ..missing_anywidget import FigureWidget
289-
return FigureWidget
290302
291-
return orig_getattr(import_name)
303+
return orig_getattr(import_name)
292304
"""
293305
# ### __all__ ###
294306
for path_parts, class_names in alls.items():

codegen/utils.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -82,12 +82,16 @@ def build_from_imports_py(rel_modules=(), rel_classes=(), init_extra=""):
8282

8383
result = f"""\
8484
import sys
85-
from _plotly_utils.importers import relative_import
86-
__all__, __getattr__, __dir__ = relative_import(
87-
__name__,
88-
{repr(rel_modules)},
89-
{repr(rel_classes)}
90-
)
85+
from typing import TYPE_CHECKING
86+
if TYPE_CHECKING:
87+
{imports_str}
88+
else:
89+
from _plotly_utils.importers import relative_import
90+
__all__, __getattr__, __dir__ = relative_import(
91+
__name__,
92+
{repr(rel_modules)},
93+
{repr(rel_classes)}
94+
)
9195
9296
{init_extra}
9397
"""

plotly/__init__.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
2727
"""
2828

29-
import sys
3029
from typing import TYPE_CHECKING
3130
from _plotly_utils.importers import relative_import
3231
import importlib.metadata
@@ -35,7 +34,7 @@
3534
__version__ = importlib.metadata.version("plotly")
3635
version = __version__
3736

38-
if sys.version_info < (3, 7) or TYPE_CHECKING:
37+
if TYPE_CHECKING:
3938
from plotly import (
4039
graph_objs,
4140
tools,

plotly/io/__init__.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
from _plotly_utils.importers import relative_import
2-
import sys
32
from typing import TYPE_CHECKING
43

5-
if sys.version_info < (3, 7) or TYPE_CHECKING:
4+
if TYPE_CHECKING:
65
from ._kaleido import (
76
to_image,
87
write_image,

0 commit comments

Comments
 (0)