Skip to content

Commit a62e412

Browse files
author
Jon M. Mease
committed
Optimize imports and re-enable recursive submodule imports
This removes remaining type annotations and delays import of validators until datatype construction
1 parent 4e57805 commit a62e412

File tree

3 files changed

+47
-10
lines changed

3 files changed

+47
-10
lines changed

codegen/__init__.py

+7
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,13 @@ def perform_codegen():
161161
(f"._{node.name_undercase}", node.name_datatype_class)
162162
)
163163

164+
# submodule import
165+
if node.child_compound_datatypes:
166+
path_to_datatype_import_info.setdefault(key, []).append(
167+
(f"plotly.graph_objs{node.parent_dotpath_str}",
168+
node.name_undercase)
169+
)
170+
164171
# ### Write plotly/graph_objs/graph_objs.py ###
165172
# This if for backward compatibility. It just imports everything from
166173
# graph_objs/__init__.py

codegen/datatypes.py

+8-10
Original file line numberDiff line numberDiff line change
@@ -79,16 +79,9 @@ def build_datatype_py(node):
7979

8080
# Imports
8181
# -------
82-
buffer.write('from typing import *\n')
83-
buffer.write('from numbers import Number\n')
8482
buffer.write(
8583
f'from plotly.basedatatypes import {node.name_base_datatype}\n')
8684

87-
# ### Import type's validator package with rename ###
88-
buffer.write(
89-
f'from plotly.validators{node.parent_dotpath_str} import '
90-
f'{undercase} as v_{undercase}\n')
91-
9285
# Write class definition
9386
# ----------------------
9487
buffer.write(f"""
@@ -165,7 +158,7 @@ def {subtype_node.name_property}(self, val):
165158
# {literal_node.name_property}
166159
# {'-' * len(literal_node.name_property)}
167160
@property
168-
def {literal_node.name_property}(self) -> {prop_type}:
161+
def {literal_node.name_property}(self):
169162
return self._props['{literal_node.name_property}']\n""")
170163

171164
# ### Private properties descriptions ###
@@ -174,13 +167,13 @@ def {literal_node.name_property}(self) -> {prop_type}:
174167
# property parent name
175168
# --------------------
176169
@property
177-
def _parent_path_str(self) -> str:
170+
def _parent_path_str(self):
178171
return '{node.parent_path_str}'
179172
180173
# Self properties description
181174
# ---------------------------
182175
@property
183-
def _prop_descriptions(self) -> str:
176+
def _prop_descriptions(self):
184177
return \"\"\"\\""")
185178

186179
buffer.write(node.get_constructor_params_docstring(indent=8))
@@ -199,6 +192,11 @@ def __init__(self""")
199192
buffer.write(f"""
200193
super().__init__('{node.name_property}', **kwargs)
201194
195+
# Import validators
196+
# -----------------
197+
from plotly.validators{node.parent_dotpath_str} import (
198+
{undercase} as v_{undercase})
199+
202200
# Initialize validators
203201
# ---------------------""")
204202
for subtype_node in subtype_nodes:

plotly/graph_objs/__init__.py

+32
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,67 @@
11
from ._violin import Violin
2+
from plotly.graph_objs import violin
23
from ._table import Table
4+
from plotly.graph_objs import table
35
from ._surface import Surface
6+
from plotly.graph_objs import surface
47
from ._scatterternary import Scatterternary
8+
from plotly.graph_objs import scatterternary
59
from ._scatterpolargl import Scatterpolargl
10+
from plotly.graph_objs import scatterpolargl
611
from ._scatterpolar import Scatterpolar
12+
from plotly.graph_objs import scatterpolar
713
from ._scattermapbox import Scattermapbox
14+
from plotly.graph_objs import scattermapbox
815
from ._scattergl import Scattergl
16+
from plotly.graph_objs import scattergl
917
from ._scattergeo import Scattergeo
18+
from plotly.graph_objs import scattergeo
1019
from ._scattercarpet import Scattercarpet
20+
from plotly.graph_objs import scattercarpet
1121
from ._scatter3d import Scatter3d
22+
from plotly.graph_objs import scatter3d
1223
from ._scatter import Scatter
24+
from plotly.graph_objs import scatter
1325
from ._sankey import Sankey
26+
from plotly.graph_objs import sankey
1427
from ._pointcloud import Pointcloud
28+
from plotly.graph_objs import pointcloud
1529
from ._pie import Pie
30+
from plotly.graph_objs import pie
1631
from ._parcoords import Parcoords
32+
from plotly.graph_objs import parcoords
1733
from ._ohlc import Ohlc
34+
from plotly.graph_objs import ohlc
1835
from ._mesh3d import Mesh3d
36+
from plotly.graph_objs import mesh3d
1937
from ._histogram2dcontour import Histogram2dContour
38+
from plotly.graph_objs import histogram2dcontour
2039
from ._histogram2d import Histogram2d
40+
from plotly.graph_objs import histogram2d
2141
from ._histogram import Histogram
42+
from plotly.graph_objs import histogram
2243
from ._heatmapgl import Heatmapgl
44+
from plotly.graph_objs import heatmapgl
2345
from ._heatmap import Heatmap
46+
from plotly.graph_objs import heatmap
2447
from ._contourcarpet import Contourcarpet
48+
from plotly.graph_objs import contourcarpet
2549
from ._contour import Contour
50+
from plotly.graph_objs import contour
2651
from ._choropleth import Choropleth
52+
from plotly.graph_objs import choropleth
2753
from ._carpet import Carpet
54+
from plotly.graph_objs import carpet
2855
from ._candlestick import Candlestick
56+
from plotly.graph_objs import candlestick
2957
from ._box import Box
58+
from plotly.graph_objs import box
3059
from ._bar import Bar
60+
from plotly.graph_objs import bar
3161
from ._area import Area
62+
from plotly.graph_objs import area
3263
from ._layout import Layout
64+
from plotly.graph_objs import layout
3365
from ._frame import Frame
3466
from ._figure import Figure
3567
from ._figurewidget import FigureWidget

0 commit comments

Comments
 (0)